Current-mode mixed-signal SRAM based compute-in-memory for low power machine learning

ABSTRACT

Multipliers and Multiply-Accumulate (MAC) circuits are fundamental building blocks in signal processing, including in emerging applications such as machine learning (ML) and artificial intelligence (AI) that predominantly utilize digital-mode multipliers, and MACs. Typically, digital multipliers and MACs can operate at high speed with high resolution, and synchronously. As the resolution and speed of digital multipliers, and MACs increase, usually the dynamic power consumption and chip size of digital implementations increases substantially that makes them impractical for some ML and AI segments, including in portable, mobile, near edge, or near sensor applications. The multipliers and MACs utilizing the disclosed current mode data-converters are manufacturable in main-stream digital CMOS process, and they can have medium to high resolutions, capable of low power consumptions, having low sensitivity to power supply and temperature variations, as well as operating asynchronously, which makes them suitable for high-volume, low cost, and low power ML and AI applications. Moreover, the multipliers and MACs disclosed in this invention can be placed near conventional CMOS memory cells, such as Static-Random-Access-Memory (SRAM) or Electrically Programmable Read-Only Memory (EPROM) or Electrically Erasable Programmable Read-Only Memory (E 2 PROM), which facilitates In-Memory-Compute (IMC) and or near-memory-compute (NMC), that can further reduce dynamic power consumption.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/802,523 filed on Feb. 26, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/789,375 filed on Feb. 12, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,899 filed on Jan. 19, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,897 filed on Jan. 19, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,895 filed on Jan. 19, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,893 filed on Jan. 19, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority from U.S. Provisional Patent Application Ser. No. 62/912,407 filed on Oct. 8, 2019, and which are herein specifically incorporated by reference in their entirety. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority from U.S. Provisional Patent Application Ser. No. 62/880,885 filed on Jul. 31, 2019, and which are herein specifically incorporated by reference in their entirety. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority from U.S. Provisional Patent Application Ser. No. 62/856,889 filed on Jun. 4, 2019, and which are herein specifically incorporated by reference in their entirety. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority from U.S. Provisional Patent Application Ser. No. 62/862,772 filed on Jun. 18, 2019, and which are herein specifically incorporated by reference in their entirety. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority from U.S. Provisional Patent Application Ser. No. 62/865,845 filed on Jun. 24, 2019, and which are herein specifically incorporated by reference in their entirety. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority of continuation-in-part from U.S. patent application Ser. No. 16/381,245 filed on Apr. 11, 2019 and U.S. Pat. No. 10,594,334 issued on Mar. 17, 2020. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/746,891 filed on Jan. 19, 2020, which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678 filed on Apr. 17, 2018, and which are herein specifically incorporated by reference in their entirety. Furthermore, this application is a continuation-in-part of and claims the benefit of priority from U.S. patent application Ser. No. 16/802,523 filed on Feb. 26, 2020, which is a continuation in part of U.S. patent application Ser. No. 16/801,564 filed on Feb. 26, 2020, and which issued on Jun. 30, 2020 as U.S. patent Ser. No. 10/700,695. Furthermore, this application claims priority from U.S. Provisional Patent Application Ser. No. 62/912,407 filed on Oct. 8, 2019, and which are herein specifically incorporated by reference in their entirety.

All of the patent applications to which this application claims priority are hereby incorporated by reference as if fully set forth herein.

FIELD OF DISCLOSURE

This disclosure relates to improvements in mixed-signal data-converters, multipliers, and multiply-accumulate for use in integrated circuits (ICs) in general. The disclosure more specifically relates to emerging artificial intelligence and machine learning (AI & ML) arranged with Compute-In-Memory (CIM) or Compute-Near-Memory (CNM) in applications that are mobile, portable, and near edge and or on sensors, which require low-power consumption, small-size, low cost (for high-volumes), private, and asynchronous operations.

BACKGROUND

One-size-fit-all and standard digital solutions for AI & ML applications offer ease of interface compatibility, programming flexibility, and fast time to market advantages. However, as AI & ML applications expand their foot-print closer to the edge of the network and or on intelligent sensors (where signals are gathered and processed together), more application specific and custom solutions may be required to meet low-power, low-cost, and high-volume objectives. Majority of digital AI & ML chips that are generally deployed on the cloud require bleeding edge deep sub-micron (e.g., 20 nano-meter and smaller) manufacturing which are expensive and power hungry. As such, to deploy AI &ML solutions closer to the edge of communication networks or near sensors and mobile devices, the high cost and high-power consumption of bleeding edge digital solutions become prohibitive. Approximate computing, that can utilize analog and mixed-signal processing, enables AI & ML solutions including in for example in robotics, medical, mobile, drone, portable and private surveillance, and other near sensor applications that need privacy, cannot afford latency, require low cost and low power consumption along with asynchronous signal processing. Moreover, cheaper main-stream manufacturing (e.g., 45 nano-meter to 90 nano-meter) can be sufficient for analog and mixed-signal processors to perform AI & ML operations at lower power consumptions with substantially lower costs.

An objective of the disclosed invention is to perform Compute-In-Memory (CIM) or Compute-Near-Memory (CNM) which can reduce dynamic power consumption by arranging the digital memory cells near computation cells for faster communications and reducing the digital read/write cycles times in and out of memory.

Another objective of the present disclosure is to provide data-converters that can be integrated with and seamlessly interface with standard digital logic (e.g., sea of gates), including for hybrid AI & ML signal processing (e.g., main digital signal processors combined with analog mixed-signal accelerators and or co-processors).

Another objective of the present disclosure is to provide current-mode data-converters, multipliers, and multiply-accumulate circuits that can interface with digital systems and that can perform some of the signal processing functions in analog and or mixed-signal for AI & ML applications, and at low power consumption and cost effectively. Such current-mode data-converters, multipliers, and multiply-accumulate circuits can also be used in conjunction with fully-digital systems to facilitate hybrid mixed-signal, analog, and digital signal processing (or as acceleration IC engines) for AI & ML applications.

Another objective of the present disclosure is to perform some of the signal condition functions of AI & ML asynchronously by utilizing clock-free data-converters, multipliers, and multiply-accumulate circuits, which frees signal processing and computations from clock related cycle-time delay, dynamic power consumption, and noise related to free running clocks.

Substantial amount of current consumption in ML & AI computation (based on conventional digital processors) is consumed during memory read-write cycle of conventional digital signal processing. Another objective of this disclosure is to facilitate mixed-mode signal processing for ML & AI that is memory free and thus reduces power consumption.

Conventional AI & ML digital signal processing rely on central processors on the cloud which increases the overall application power consumption due in part to the back-and-forth communications with the cloud-based digital processors. This introduces computation latency that may be unacceptable in some applications such as medical. Another objective of this disclosure is to facilitate low power and low cost mixed-mode signal processing for ML & AI that can be performed at the edge or on sensors to help eliminate the latency.

Generally, performing AI & ML signal processing on the cloud has privacy risks. Another objective of the present disclosure is to enable low power and low-cost AI & ML analog and mixed signal processing at the edge or on the sensors to avoid sending and receiving information to and from the cloud.

Another objective of the present disclosure is to provide AI & ML signal processing and computation circuits, with current-mode data-converters, multipliers, and multiply-accumulate circuits that can be manufactured in main-stream Complementary-Metal-Oxide-Semiconductor (CMOS) fabrication which is not only low cost, rugged, and proven but also that is compatible with digital systems, which facilitates ease of interface with existing digital hardware and software platforms.

Another objective of this disclosure is to provide AI & ML signal processing and computation circuits utilizing current-mode data-converters, multipliers, and multiply-accumulate circuits that can operate with low voltage power supplies suitable for portable and battery-operated AI& ML applications.

Another objective of this disclosure is to provide AI & ML signal processing and computation in current-mode, which is inherently fast (in part) because voltage swings are kept to a minimal in current-mode signal processing. Moreover, current-mode signal processing enables current-mode data-converters, multipliers, and multiply-accumulate circuits to operate with low voltage power supplies suitable for some portable and battery-operated AI& ML applications.

Another objective of the disclosed invention is to provide AI & ML signal processing and computation circuits, utilizing analog and mixed-signal solutions whose input signal zero-scale to full-scale dynamic ranges are not as restricted by either power supply voltages or a limited span of current signals. For example, some analog signal processing units may rely on operating transistors in the subthreshold regions which restricts the input and or output dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing circuits may rely on operating transistors with high currents in the saturation regions which restricts the input and or output dynamic range of analog signal processing circuits to higher current signals.

Another objective of the disclosed invention is to provide small size current-mode data-converters, multipliers, and multiply-accumulate circuits for AI & ML applications that require plurality of such circuits to occupy small areas and can be manufactured at low cost.

Another objective of the present disclosure is to provide data-converters that can be arranged with minimal digital circuitry (i.e., be digital-light), thereby saving on die size and reducing dynamic power consumption.

Another objective of the disclosed invention is to provide low glitch and low dynamic power consuming current-mode data-converters, multipliers, and multiply-accumulate circuits utilized in mixed-mode multipliers for AI & ML applications, which accordingly reduce the glitch and dynamic power consumption of for signal processing in AI & ML end-applications.

Another objective of the disclosed invention is to perform analog signal processing in current-mode wherein functions such as addition or subtraction can take small area (e.g., addition of two current signals requires just the coupling of two signals), in addition to being inherently fast.

Another objective of the disclosed invention is to perform analog signal processing without using any resistors or capacitors, which reduces manufacturing size and cost for signal processing in AI & ML end-applications.

Another objective of the disclosed invention is to achieve higher accuracy multiplication results while utilizing lower resolutions current-mode data converters (which are utilized in the mixed-signal multipliers). For example, for AI & ML end-applications that require plurality of such multipliers, it is advantageous to attain higher accuracy multiplication results by utilizing low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower costs.

Another objective of the disclosed invention is to provide current-mode data-converters, multipliers, and multiply-accumulate circuits which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process, temperature, and operating condition variations. Accordingly, temperature coefficient, power supply coefficient, and AC power supply rejection performance of multipliers (that utilize such data converters) for AI & ML applications can be enhanced.

Another objective of the disclosed invention is to provide current-mode analog and mixed-signal signal processing (utilizing data-converters, multipliers, and multiply-accumulate circuits) that can be asynchronous, consume low power, have small die size, and provide approximate computation as a function of input frequency, for example. Analog and mixed-signal processing may experience errors that can result in approximate computation but avoid total failures, which can provide the end-application with approximate results to work with instead of experiencing failed results in most (all) digital based computations.

Another objective of the disclosed invention is to take advantage of attenuated contribution of component's random errors in a summation node. Summing current outputs of a plurality of iDACs would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Another objective of the disclosed invention is to provide analog and mixed signal processors for AI & ML that neither require very expensive nor bleeding-edge deep sub-micron (e.g., 10 nano-meter geometries) manufacturing. Generally, purely digital AI & ML systems can achieve high-speed and high-density and high-flexibility relying chiefly on very expensive bleeding-edge deep sub-micron manufacturing (whose transistors are fast and dense) whose costs may be prohibitive in non-cloud high-volume AI & ML applications near the edge or on sensors with intelligence. Moreover, signal processors on the edge or on sensors may not need very high computation speeds given their more dedicated and smaller AI & ML related tasks, in part because such processors may not need to be shared or multi-tasked on edge devices or sensors. Therefore, utilizing analog and mixed signal processing for AI & ML on edge devices and sensors, which can perform to specifications by using inexpensive main-stream manufacturing, avoids the unnecessary (fast and dense) and very expensive bleeding-edge deep sub-micron manufacturing that is generally required by digital AI & ML processors.

Another objective of the disclosed invention is to provide plurality of (data-converters, multipliers, and multiply-accumulate circuits to perform) analog and mixed signal processors for AI & ML application, wherein the analog and mixed signal processors can be made small, but their precision can be enhanced via a shared centrally calibrated (or trimmed) network.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram illustrating a floating current-mode (i) digital-to-analog-converter (iDAC) method.

FIG. 2 is a simplified circuit schematic diagram illustrating an embodiment of an iDAC that utilizes the floating iDAC method illustrated in FIG. 1.

FIG. 3 is a simplified circuit schematic diagram illustrating an embodiment of an iDAC that combines a plurality of iDACs in order to arrange a higher resolution iDAC, wherein at least one of the plurality of iDACs utilizes the floating iDAC method illustrated in FIG. 1.

FIG. 4 is a simplified circuit schematic diagram illustrating another embodiment of an iDAC that combines a plurality of iDACs in order to arrange a higher resolution iDAC, wherein at least one of the plurality of iDACs utilizes the floating iDAC method illustrated in FIG. 1.

FIG. 5 is a simplified schematic diagram illustrating a mixed-signal current-mode digital-input to analog-current-output multiplier (XD_(i)I_(o)) comprising of a first iDAC whose output is coupled to the reference input of a second iDAC, wherein the first and second iDACs utilize the floating iDAC method illustrated in FIG. 1.

FIG. 6 is a simplified circuit schematic diagram illustrating another embodiment of an iDAC that utilizes the floating iDAC method illustrated in FIG. 1.

FIG. 7 is a simplified functional block diagram illustrating a factorized iDAC method.

FIG. 8 is a simplified circuit schematic diagram illustrating an embodiment of an iDAC that utilizes the factorized iDAC method illustrated in FIG. 7.

FIG. 9 is a simplified circuit schematic diagram illustrating another embodiment of an iDAC that combines the factorized and floating DAC methods illustrated FIG. 7 and FIG. 1, respectively.

FIG. 10 is a simplified circuit schematic diagram illustrating another embodiment of another iDAC that utilizes the factorized and floating DAC methods illustrated FIG. 7, and FIG. 1, respectively.

FIG. 11 is a simplified circuit schematic diagram illustrating an embodiment of a mixed-signal current-mode digital-input to analog-output multiplier (XD_(i)I_(o)) comprising of a first iDAC whose output is coupled to the reference input of a second iDACs, wherein the first and second iDACs utilize the factorized and floating DAC methods illustrated FIG. 7, and FIG. 1, respectively.

FIG. 12, including FIG. 12A and FIG. 12B, is a (Simulation Program with Integrated Circuits Emphasis) SPICE circuit simulation showing the linearity waveforms of the mixed-signal current-mode digital-input to analog-current-output multiplier (XD_(i)I_(o)) that is illustrated in FIG. 11.

FIG. 13 is a simplified circuit schematic diagram illustrating an embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is a mixed-signal current-mode digital-input to analog-current-output (D_(i)I_(o)) scalar multiply-accumulate (sMAC) circuit utilizing current-mode digital-to-analog-converters (iDAC).

FIG. 14 is a simplified functional block diagram illustrating another embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is another mixed-signal current-mode digital-input to analog-current-output (D_(i)I_(o)) scalar multiply-accumulate (sMAC) circuit utilizing current-mode digital-to-analog-converters (iDAC).

FIG. 15 is a simplified functional block diagram illustrating another embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is another mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) scalar multiply-accumulate (sMAC) plus bias circuit utilizing current-mode digital-to-analog-converters (iDAC) and current-mode analog-to-digital converters (iADC).

FIG. 16 is a simplified functional block diagram illustrating another embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is another mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) scalar multiply-accumulate (sMAC) plus bias circuit utilizing current-mode digital-to-analog-converters (iDAC) and current-mode analog-to-digital converters (iADC).

FIG. 17 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode multiply-accumulate (iMACiDAC) circuit. The disclosed iMACiDAC is a mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) multiply-accumulate (iMAC) circuit plus bias circuit utilizing current-mode digital-to-analog-converters (iDAC) and current-mode analog-to-digital converters (iADC).

FIG. 18 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode Artificial Neural Network (iANN) circuit. The disclosed iANN is a mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) iANN circuit utilizing current-mode multiply-accumulate (iMAC) circuits that utilize current-mode digital-to-analog-converter (iDAC) and current-mode analog-to-digital converter (iADC) circuits.

FIG. 19 is a simplified circuit schematic diagram illustrating an embodiment of a multi-channel mixed-signal current-mode digital-to-analog converter (iDAC) utilizing the multiple-channel data-converter method, wherein a central reference bias network (RBN) shares its reference bias voltage bus with plurality of current reference networks of respective plurality of data-converters.

FIG. 20 is a simplified circuit schematic illustrating an embodiment for a plurality-channels of mixed-mode multiplier (XD_(i)I_(O)) with digital-input to analog-current-output that is multi-quadrant, wherein the XD_(i)I_(O) utilizes the multiple-channel data-converter method disclosed in section 19.

FIG. 21 is a simplified circuit schematic illustrating an embodiment for a plurality-channels multiplier (XD_(i)I_(O)) with digital-input to analog-current-output that is single-quadrant, wherein the XD_(i)I_(O) utilizes the multiple-channel data-converter method disclosed in section 19, and wherein the XD_(i)I_(O) utilizes a power supply desensitization (PSR) method.

FIG. 22A is a circuit simulation illustrating the error waveform (output current SPICE simulation minus output current ideal) attributed to an output current (I_(o)) of a current-output DAC (iDAC). Here, the multiple-channel data-converter method of section 19 is utilized where the reference bias network (RBN) is not trimmed, and the iDAC is arranged similar to that of FIG. 19 but having an 8-bit resolution.

FIG. 22B is a circuit simulation illustrating the error waveform (output current SPICE simulation minus output current ideal) attributed to an output current (I_(o)) of a current-output DAC (iDAC). Here, the multiple-channel data-converter method of section 19 is utilized where two Most-Significant-Bits (MSBs) of the reference bias network (RBN) are trimmed, and the iDAC is arranged similar to that of FIG. 19 but having an 8-bit resolution.

FIG. 23 is a simplified circuit schematic illustrating an embodiment of a multiplier (XD_(i)I_(O)) with digital-inputs to analog-current-output that operate in current mode comprising of a first current-output DAC (iDAC) or iDACx₂₃ whose analog-current-output supplies the reference input to a second current-output iDAC or iDACy₂₃.

FIG. 24 is a simplified circuit schematic illustrating another embodiment of a multiplier (XD_(i)I_(O)) with digital-inputs to analog-current-output that operate in current mode comprising of a first current-output DAC (iDAC) or iDACx₂₄ whose analog-current-output supplies the reference input to a second current-output iDAC or iDACy₂₄.

FIG. 25 is a simplified circuit schematic illustrating an embodiment of a multiplier (XD_(i)I_(O)) with digital-input to analog-current-output that operate in current mode equipped with an embodiment of the power supply desensitization (PSR) circuit.

FIG. 26 is a simplified circuit schematic illustrating another embodiment of a multiplier (XD_(i)I_(O)) with digital-input to analog-current-output that operate in current mode equipped with another embodiment of the power supply desensitization (PSR) circuit.

FIG. 27 is a simplified circuit schematic illustrating another embodiment of a multiplier (XD_(i)I_(O)) with digital-input to analog-current-output that operate in current mode comprising of a first current-output DAC (iDAC) or iDACx₂₇ whose analog-current-output supplies the reference input to a second current-output iDAC or iDACy₂₇.

FIG. 28 is a circuit simulations illustrating the error waveform (output current SPICE simulation minus output current ideal) attributed to an output current (I_(o)) of a XD_(i)I_(O) multiplier arranged similar to that of FIG. 21 but having an 8-bit digital inputs instead of 3-bits.

FIG. 29 is a circuit simulations illustrating the error waveform (output current SPICE simulation minus output current ideal) attributed to an output current (I_(o)) of a XD_(i)I_(O) multiplier arranged similar to that of FIG. 20 but having an 8-bit digital inputs instead of 4-bits.

FIG. 30 is a simplified circuit schematic illustrating another embodiment for a plurality-channels multiplier (XD_(i)I_(O)) with digital-input to analog-current-output that is single-quadrant, wherein the XD_(i)I_(O) multiplier utilizes the multiple-channel data-converter method disclosed in section 19 and the XD_(i)I_(O) multiplier utilizes a power supply desensitization (PSR) circuit.

FIG. 31 is a circuit simulations showing the error waveform (output current SPICE simulation minus output current ideal) attributed to the output current (I_(o)) of a XD_(i)I_(O) multiplier that is arranged similar to that of FIG. 30 but having an 8-bit digital inputs instead of 3-bits.

FIG. 32 is a simplified block diagram illustrating a meshed digital-to-analog multiplication (mD_(i)S_(O)) method.

FIG. 32A is another simplified block diagram illustrating the meshed digital-to-analog multiplication (mD_(i)S_(O)) method that is disclosed in section 32.

FIG. 33 is a simplified circuit schematic illustrating an embodiment of a digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in the prior section 32A.

FIG. 34 is a simplified circuit schematic illustrating another embodiment of a digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in section 32 and section 32A.

FIG. 35 is a simplified circuit schematic illustrating another embodiment of a digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in section 32.

FIG. 36 is a simplified block diagram illustrating a first non-linear digital-to-analog converter (NDAC) method.

FIG. 36A is a simplified block diagram illustrating a second non-linear digital-to-analog converter (NDAC) method, which utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method that is discussed in section 32.

FIG. 37 is a simplified block diagram illustrating a third non-linear digital-to-analog converter (NDAC) method.

FIG. 38 is a simplified circuit schematic illustrating an embodiment of a non-linear digital-input to analog current output digital-to-analog converter (iNDAC₃₈), which utilizes the NDAC method described in section 37, wherein the non-linear output profile of iNDAC₃₈ is programmed to approximate a square transfer function.

FIG. 39 is a simplified circuit schematic illustrating another embodiment of a non-linear digital-input to analog current output digital-to-analog converter (iNDAC₃₉), which utilizes the NDAC method described in section 36A wherein the non-linear output profile of iNDAC₃₉ is programmed to approximate a square transfer function.

FIG. 40 is a simplified circuit schematic illustrating another embodiment of the digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in the prior section 32, and wherein the XD_(i)I_(O) multiplier utilizes the multiple-channel data-converter method disclosed in section 19 when plurality of XD_(i)I_(O) multipliers are needed by an end-application.

FIG. 41 is a simplified circuit schematic illustrating another embodiment of the digital-input to analog current output multiplier (XD_(i)I_(O)), which can be extended to plurality of XD_(i)I_(O) multipliers by sharing a central reference bias network (RBN) that bias the current reference network of each of the XD_(i)I_(O) multipliers.

FIG. 42 is a SPICE circuit simulations that illustrates the linearity error in % between an ideal output current (Io_(ideal)) of a XD_(i)I_(O) multiplier versus the simulated output current (Io_(simulation)) of a XD_(i)I_(O) multiplier that is arranged similar to that of FIG. 34 but having a 4-bit resolution.

FIG. 43 is a SPICE circuit simulations that illustrates the linearity error in % between an ideal output current (Io_(ideal)) of a XD_(i)I_(O) multiplier versus the simulated output current (Io_(simulation)) of a XD_(i)I_(O) multiplier that is arranged similar to that of FIG. 40 but with a 6-bit resolution.

FIG. 44 illustrates a SPICE simulations of a circuit comprising of an ideal square iDAC's output current (I_(X) ²) plot versus the simulated output current (I_(O) ²) plot of a square iDAC that is arranged similar to that of FIG. 38 but with a 7-bit resolution.

FIG. 45 illustrates SPICE simulations of a circuit comprising of an ideal square iDAC's output current (I_(X) ²) plot versus the simulated output current (I_(O) ²) plot of a square iDAC that is arranged similar to that of FIG. 39 but with a 7-bit resolution.

FIG. 46 illustrates SPICE simulations of a circuit comprising of an ideal XD_(i)I_(O) multiplier's output current (Io_(ideal)) plot versus the simulated output current (Io_(simulation)) plot of a XD_(i)I_(O) multiplier that is arranged similar to that of FIG. 41 but with a 7-bit resolution.

FIG. 47 is a simplified block diagram illustrating an approximate non-linear digital data-converter method.

FIG. 48 is a simplified block diagram illustrating an embodiment of a digital input to analog output multiplier (XD_(i)I_(O)) that utilizes a time multiplexed digital squarer logic block.

FIG. 49 is a simplified block diagram illustrating an embodiment of a digital input to analog output multiplier (XD_(i)I_(O)) that utilizes a pair of digital squarer logic blocks.

FIG. 50 is a simplified block diagram illustrating another embodiment of a digital input to analog output multiplier (XD_(i)I_(O)) that utilizes a pair of digital squarer logic blocks.

FIG. 51 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode multiply-accumulate (MACiDAC) circuit whose multiplication functions in accordance with the quarter square procedure, wherein the squarer logic block SQRL₅₁ is time multiplexed to perform a plurality of multiplications.

FIG. 52 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode multiply-accumulate (MACiDAC) circuit that utilizes a digital-input to digital-output multiplier (MULTL₅₂).

FIG. 53 illustrates SPICE simulations of a circuit equivalent to the MULTL₄₉ section of FIG. 49, wherein the SQRLs₄₉ and SQRLd₄₉ blocks utilize the approximate (non-linear) square logic of aSQRL₄₇ disclosed in FIG. 47.

FIG. 54 illustrates a typical logic diagram of a 2-bit digital-input to 4-bit digital-output squarer (block SQR2t4₅₄).

FIG. 55 illustrates a typical logic diagram of a 3-bit digital-input to 6-bit digital-output squarer (block SQR3t6₅₅).

FIG. 56 illustrates a typical logic diagram of a 2-bit by 2-bit digital-input to 4-bit digital-output multiplier (block MULT2×2₅₆).

FIG. 57 illustrates a block diagram of a squarer (SQR₅₇) that utilizes the segmented mixed mode multiplication.

FIG. 58 illustrates a block diagram of an embodiment of a squarer (SQR₅₈) which is a segmented digital-input to current analog-output squarer utilizing meshed multipliers.

FIG. 59 illustrates a block diagram of another embodiment of a squarer (SQR₅₉) which is a segmented digital-input to current analog-output squarer.

FIG. 60 illustrates a block diagram of another embodiment of a squarer (SQR₆₀) which is a segmented digital-input to current analog-output squarer.

FIG. 61 is a simplified block diagram (aSQR₆₁) illustrating an embodiment of a segmented digital-input to current analog-output approximate squarer.

FIG. 62 illustrates a block diagram of an embodiment of a mixed-mode multiplier (sMULT₆₂) which is a segmented digital-input to current analog-output multiplier utilizing a time multiplexed digital multiplier.

FIG. 63 illustrates a block diagram of an embodiment of a mixed-mode multiply-accumulate (MAC₆₃).

FIG. 64 is a simplified block diagram illustrating an embodiment a digital-input to current analog-output approximate square-accumulate (aSQRAC₆₄).

FIG. 65 illustrates SPICE simulations of a circuit equivalent to the SQR₅₈ illustrated in FIG. 58 and disclosed in section 58.

FIG. 66 illustrates SPICE simulations of a circuit equivalent to the aSQR₆₁ illustrated in FIG. 61 and disclosed in section 61.

FIG. 67 illustrates SPICE simulations of a circuit equivalent to the SQR₅₉ illustrated in FIG. 59 and disclosed in section 59.

FIG. 68 illustrates SPICE simulations of a circuit equivalent to the MULTL₆₂ described in section 62 and illustrated in FIG. 62.

FIG. 69 is a simplified circuit schematic illustrating an embodiment of SRAM based Compute-In-Memory (CIM) utilizing a meshed multiplier (XD_(I)I_(O)) and reference bias network (RBN).

FIG. 70 is a simplified circuit schematic illustrating another embodiment of SRAM based Compute-In-Memory (CIM) utilizing a current-mode Multiply-Accumulate (iMAC) system comprising a plurality of meshed multiplier (XD_(I)I_(O)) with a bias current-mode Digital-to-Analog-Converter (iDAC), and a current-mode Analog-To-Digital-Converter (iADC).

SUMMARY OF THE DISCLOSURE

An aspect of the present disclosure is a floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method comprising: programming a plurality of voltage-controlled-current sources (VCCS) to generate a plurality of current signals to be at least one of equally weighted currents, binarily weighted currents, non-linear weighted currents, and individually weighted currents; summing the plurality of current signals to create a summation current signal (S_(SUM)) at a reference current input port (A_(R)); wherein the floating iDAC has a digital input word (D_(i)) that controls a plurality of current switches (iSW) that respectively steer the plurality of current signals to at least one of a positive current output port (I_(O) ⁺), and a negative current output port (I_(O) ⁻) of the floating iDAC; wherein the currents flowing through the I_(O) ⁺ port and the I_(O) ⁻ port are proportional to the current signal flowing through the A_(R) port, and responsive to the D_(i) word of the floating iDAC. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: receiving current signals from respective I_(O) ⁺ ports and I_(O) ⁻ ports, of at least one of a subsequent iDAC, into the respective at least one of the I_(O) ⁺ port, and the I_(O) ⁻ port of the floating iDAC; wherein the A_(R) port receives a reference current signal (S_(R)); wherein the reference input signal of each of the subsequent iDACs is proportional to the S_(R) signal; and wherein the at least one of the subsequent iDACs effectively increases the resolution of the floating iDAC. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: receiving the current signal from a first iDAC into a reference input port of a second iDAC, wherein at least one of the first iDAC and the second iDAC is the floating iDAC; generating a multiplication output current signal (S_(MULT)) at an output port of the second iDAC; and wherein the S_(MULT) signal is proportional to the S_(R) signal and responsive to the product of a digital input word of the first iDAC and, a digital input word of the second iDAC. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: generating a plurality of S_(MULT) signals; and combining the plurality of S_(MULT) signals to generate a multiply-accumulate current signal (S_(MAC)), wherein the S_(MAC) signal is a summation of the plurality of the S_(MULT) signals. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: combining the S_(MAC) signal with a bias current signal (S_(B)) from a bias current iDAC to generate a biased multiply-accumulate current signal (S_(BMAC)), wherein the S_(BMAC) signal is the summation of the S_(MAC) signal and the S_(B) signal. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: digitizing the S_(BMAC) signal in a current-mode analog-to-digital converter (iADC). Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: combining a plurality of S_(BMAC) signals, wherein the combining the plurality of S_(BMAC) signals forms a current-mode artificial neural network (iANN). Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: receiving currents from I_(O) ⁺ port and I_(O) ⁻ port, of a plurality of subsequent floating iDACs, into the respective I_(O) ⁺ port and the I_(O) ⁻ port of the floating iDAC to generate an I_(Op) ⁺ and an I_(Op) ⁻; generating a plurality of reference current sources (S_(R))s to be at least one of equally weighted currents, binarily weighted currents, non-linear weighted currents, and individually weighted currents; receiving each of the plurality of S_(R) signals respectively into the I_(sR) port of each subsequent floating iDAC; receiving a X digital word of width m, and a Y digital word of width n, wherein each bit weight of the X word of width m corresponds to the respective weight of each of the plurality of reference currents corresponding respectively to each of the floating iDACs, and wherein each bit weight of the Y word of width n corresponds to the digital input word D_(i) of the plurality of floating iDACs; generating a multiplication output current signal (S_(MULT)) in at least one of the I_(Op) ⁺ port and I_(O) ⁻p port; wherein the I_(iMULT) current is proportional to the magnitude of S_(R) source, and responsive to the product of the X word and the Y word; and wherein the X word and Y word are interchangeable.

Another aspect of the present disclosure is a floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method comprising: generating a plurality of currents in a plurality of metal-oxide-semiconductor-field-effect-transistors (MOSFETs), wherein a weighting relationship among each of the plurality of currents in the MOSFETs is at least one of equally weighted, binarily weighted, non-linear weighted, and individually weighted; steering each of the plurality of current signals in the plurality of MOSFETs respectively through each input terminal of a plurality of current switches (iSW); steering each of the plurality of current signals through the plurality of iSWs respectively to each output terminal of the plurality of current switches (iSW) to at least one of a positive current output port (I_(O) ⁺), and a negative current output port (I_(O) ⁻); receiving a digital input word (D_(i)), and respectively controlling the steering of each of the plurality of current signals through the plurality of iSWs by the D_(i); wherein respective source ports of the plurality of MOSFETs are coupled together, and coupled to a reference current source (S_(R)); wherein respective gate terminals of the plurality of MOSFETs are coupled together, and coupled to a voltage source (V_(B)); and wherein the currents flowing through the I_(O) ⁺ port and the I_(O) ⁻ port are proportional to the magnitude of the S_(R) source, and responsive to the D_(i) word of a floating iDAC. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: receiving into the at least one of the I_(O) ⁺ port, and the I_(O) ⁻ port of the floating iDAC, currents from respective I_(O) ⁺ ports and I_(O) ⁻ ports from at least one of a subsequent iDAC, wherein the at least one of the subsequent iDAC effectively increases the resolution of the floating iDAC. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: receiving the output current signal from a first iDAC into a reference input port of a second iDAC, wherein at least one of the first iDAC and the second iDAC is the floating iDAC; and generating a multiplication output current signal (S_(MULT)) at an output of the second iDAC. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: generating a plurality of S_(MULT) signals; and combining the plurality of S_(MULT) signals to generate a multiply-accumulate current signal (S_(MAC)), wherein the S_(MAC) signal is a summation of the plurality of the S_(MULT) signals. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: generating a bias current signal (S_(B)) by an iDAC; and combining the S_(MAC) signal with the S_(B) signal to generate a biased multiply-accumulate current signal (S_(BMAC)), wherein the S_(BMAC) signal is a summation of the S_(MAC) signal and the S_(B) signal. Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: digitizing the S_(BMAC) signal in a current-mode analog-to-digital converter (iADC). Further aspects of the floating current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the floating iDAC method further comprising: combining a plurality of S_(BMAC) signals, wherein the combining the plurality of S_(BMAC) signals forms a current-mode artificial neural network (iANN).

Another aspect of the present disclosure is a mixed-signal current-mode multiply-accumulate (iMAC) method in integrated circuits, the mixed-signal iMAC method comprising: generating a plurality of first current output signals (S1 _(O))s by a plurality of first current-mode digital-to-analog converters (iDAC1)s; receiving the plurality of S1 _(O) signals into a respective plurality of reference input ports (A2 _(R)) of a plurality of second current-mode digital-to-analog-converters (iDAC2)s; generating a plurality of multiplication output current signals (S_(MULT))s at the plurality of A2 _(R) ports; combining a plurality of S_(MULT) signals together to generate a multiply-accumulate current signal (S_(MAC)); and wherein the S_(MAC) signal is a summation of a plurality of second current output signals (S2 _(O))s of the plurality of iDAC2 s. Further aspects of the mixed-signal current-mode multiply-accumulate (iMAC) method in integrated circuits, the mixed-signal iMAC method further comprising: generating a bias current signal (S_(B)) by a bias iDAC; and combining the S_(MAC) signal with the S_(B) signal to generate a biased multiply-accumulate current signal (S_(BMAC)), wherein the S_(BMAC) signal is a summation of the S_(MAC) signal and the S_(B) signal. Further aspects of the mixed-signal current-mode multiply-accumulate (iMAC) method in integrated circuits, the mixed-signal iMAC method further comprising: digitizing the S_(BMAC) signal in a current-mode analog-to-digital converter (iADC). Further aspects of the mixed-signal current-mode multiply-accumulate (iMAC) method in integrated circuits, the mixed-signal iMAC method further comprising: combining a plurality of S_(BMAC) signals, wherein the combining the plurality of S_(BMAC) signals forms a current-mode artificial neural network (iANN).

Another aspect of the present disclosure is a factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method comprising: generating a scaled top output current signal (A_(t)F_(t)) as a product of a top scale factor (F_(t)) and a top output current signal (A_(t)) of a top iDAC (iDAC_(t)), wherein the iDAC_(t) receives a top digital word (D_(t)) that is t-bits wide, and wherein the iDAC_(t) receives a top reference current signal (t_(R)), and wherein the iDAC_(t) is binary weighted and wherein F_(t) and t are each between zero and eight; generating a scaled middle output current signal (A_(m)F_(m)) as a product of a middle scale factor (F_(m)) and a middle output current signal (A_(m)) of a middle iDAC (iDAC_(t)), wherein the iDAC_(m) receives a middle digital word (D_(m)) that is m-bits wide, and wherein the iDAC_(m) receives a middle reference current signal (m_(R)), and wherein iDAC_(m) is binary weighted and wherein the F_(m) and m are each between zero and eight; combining the A_(t)F_(t), and the A_(m)F_(m) signals to generate a summation analog output current signal (A_(Otm)) of a factorized iDAC; wherein a digital input word (D_(i)) of the factorized iDAC is t+m bits wide, and wherein the D_(t) is the most-significant-bits bank of the D_(i), and wherein the D_(m) is a remaining-bits bank of the D_(i), and wherein the factorized iDAC_(t) is binary weighted; and wherein A_(Otm)=A_(t)F_(t)+A_(m)F_(m) wherein (F_(t)/F_(m))×(m_(R)/t_(R))−2^(t); and wherein the t_(R), and m_(R) signals are proportional to one another and proportional to a reference input signal (S_(R)) of the factorized iDAC.

Another aspect of the present disclosure is a factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method comprising: generating a scaled top output current signal (A_(t)F_(t)) as a product of a top scale factor (F_(t)) and a top output current signal (A_(t)) of a top iDAC (iDAC_(t)), wherein the iDAC_(t) receives a top digital word (D_(t)) that is t-bits wide, and wherein the iDAC_(t) receives a top reference current signal (t_(R)), and wherein iDAC_(t) is binary weighted, and wherein F_(t) and t are each between zero and eight; generating a scaled middle output current signal (A_(m)F_(m)) as a product of a middle scale factor (F_(m)) and a middle output current signal (A_(m)) of a middle iDAC (iDAC_(t)), wherein the iDAC_(m) receives a middle digital word (D_(m)) that is m-bits wide, and wherein the iDAC_(m) receives a middle reference current signal (m_(R)), and wherein iDAC_(m) is binary weighted, and wherein the F_(m) and m are each between zero and eight; generating a scaled bottom output current signal (A_(b)F_(b)) by scaling a bottom binary iDAC (DAC_(b)) output current signal (A_(b)) by a bottom scale factor F_(b), wherein the iDAC_(b) receives a bottom digital word (D_(b)) that is b-bits wide, and wherein the iDAC_(b) receives a bottom reference current signal (b_(R)), and wherein the F_(b) and b are each integers greater than one and less than eight; combining the A_(t)F_(t), the A_(m)F_(m), and the A_(b)F_(b) signals to generate a summation analog output current signal (A_(Otm)) of a factorized iDAC; wherein A_(Otm)=A_(t)F_(t)+A_(m)F_(m)+A_(b)F_(b); wherein (F_(t)/F_(b))×(b_(R)/t_(R))=2^(t+m); wherein the digital input (D_(i)) of the factorized iDAC is t+m+b bits wide, and wherein the D_(t) is the most-significant-bits (MSBs) bank of the D_(i), and wherein the D_(m) is the intermediate-bits (ISBs) bank of the D_(i), and wherein the D_(b) is the least-significant-bits (LSBs) bank of the D_(i); and wherein the t_(R), m_(R), and b_(R) signals are proportional to one another and proportional to a reference input signal (S_(R)) of the factorized iDAC. Further aspects of the factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method further comprising: receiving the output current signal from a first iDAC into a reference input port of a second iDAC, wherein at least one of the first iDAC and the second iDAC is the factorized iDAC; generating a multiplication output current signal (S_(MULT)) at an output port of the second iDAC; and wherein the S_(MULT) signal is proportional to the S_(R) signal and responsive to the product of digital input words of the first iDAC and the second iDAC. Further aspects of the factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method further comprising: generating a plurality of S_(MULT) signals; and combining the plurality of S_(MULT) signals to generate a multiply-accumulate current signal (S_(MAC)), wherein the S_(MAC) signal is a summation of the plurality of the S_(MULT) signals. Further aspects of the factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method further comprising: generating a bias current signal (S_(B)) by a bias iDAC; and combining the S_(MAC) signal with the S_(B) signal to generate a biased multiply-accumulate current signal (S_(BMAC)), wherein the S_(BMAC) signal is a summation of the S_(MAC) signal and the S_(B) signal. Further aspects of the factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method further comprising: digitizing the S_(BMAC) signal in a current-mode analog-to-digital converter (iADC). Further aspects of the factorized current-mode digital-to-analog converter (iDAC) method in an integrated circuit, the factorized iDAC method further comprising: combining a plurality of S_(BMAC) signals, wherein the combining the plurality of S_(BMAC) signals forms a current-mode artificial neural network (iANN).

Another aspect of the present disclosure is a mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method comprising: generating a scalar current (S_(S)) by a first current-mode DAC (iDAC); replicating the S_(S) signal to generate a plurality of scalar current replica signals (S_(S)D); receiving the plurality of S_(SD) signals respectively into a reference input of each of a plurality of second iDACs; and generating a plurality of current output Signals (S_(o))s of the plurality of the second iDACs; combining the plurality of S_(o) signals of the plurality of second iDACs to generate a multiply-accumulate current (S_(MAC)); and wherein the S_(MAC) is a summation of the respective plurality of S_(o) signals. Further aspects of the mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method further comprising: combining the S_(MAC) signal with a bias current signal (S_(B)) from a bias current iDAC to generate a biased multiply-accumulate current signal (S_(BMAC)), wherein the S_(BMAC) signal is the summation of the S_(MAC) signal and the S_(B) signal. Further aspects of the mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method further comprising: digitizing the S_(BMAC) signal in a current-mode analog-to-digital converter (iADC). Further aspects of the mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method further comprising: combining a plurality of S_(BMAC) signals, wherein the combining the plurality of S_(BMAC) signals forms a current-mode artificial neural network (iANN).

Another aspect of the present disclosure is a mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method comprising: receiving a first and subsequent reference current signals, each respectively to a reference port (A_(R)) of each of first current mode iDAC of a plurality of first current mode iDACs; generating a plurality of output current signals (S_(O))s by the plurality of first current-mode DACs (iDAC); combining the plurality of S_(O) signals of the plurality of first iDACs to generate a current signal (S_(Osum)), wherein the S_(Osum) is a summation of the plurality of S_(O) signals; mirroring the S_(Osum) signal to create a mirrored S_(Osum) signal, S_(Osumm); receiving the S_(Osumm) signal into a reference input port of a scalar iDAC; and generating a multiply-accumulate current signal (S_(MAC)) at the output port of the scalar iDAC. Further aspects of the mixed-signal scalar current-mode multiply-accumulate (iMAC) method in integrated circuits, the mixed-signal scalar iMAC method further comprising: combining the S_(MAC) signal with a bias current signal (S_(B)) from a bias current iDAC to generate a biased multiply-accumulate current signal (S_(BMAC)), wherein the S_(BMAC) signal is the summation of the S_(MAC) signal and the S_(B) signal. Further aspects of the mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method further comprising: digitizing the S_(BMAC) signal in a current-mode analog-to-digital converter (iADC). Further aspects of the mixed-signal scalar current-mode multiply-accumulate (iMAC) method in an integrated circuit, the mixed-signal scalar iMAC method further comprising: combining a plurality of S_(BMAC) signals, wherein the combining the plurality of S_(BMAC) signals forms a current-mode artificial neural network (iANN).

Another aspect of the present disclosure is a non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method comprising: generating a non-linear Most-Significant-Portion (MSP) analog output signal (So_(MPS) ^(N)) that is proportional to a MSP reference signal (Sr_(MSP)), and is responsive to a bank of Most-Significant-Bits (MSBs) of a digital input word (Di_(MSP)); generating a linear Least-Significant-Portion (LSP) analog output signal (So_(LSP) ^(L)) that is proportional to a LSP reference signal (Sr_(LSP)), and is responsive to a bank of Least-Significant-Bits (LSBs) of a digital word (Di_(LSP)), and is responsive to the Di_(MSP) word; combining the So_(MPS) ^(N) signal and the So_(LSP) ^(L) signal to generate a non-linear analog output signal (So_(N)) that is proportional to a reference signal (S_(R)), and is responsive to a digital word (D_(I)); wherein the So_(LSP) ^(L) signal is a straight-line approximation between non-linear segments of the So_(MPS) ^(N) signal; wherein the Sr_(MSP) signal, and the Sr_(LSP) signal, are each proportional to the S_(R) signal; and wherein the D_(I) word is comprised of the Di_(MSP) word and the Di_(LSP) word. Further aspects of the non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method further comprising: wherein the So_(MPS) ^(N) signal is generated by a non-linear MSP digital-to-analog converter (DAC_(MSP) ^(N)) having a reference network comprised of a sequence of scaled MSP reference signals (Sr_(MSP) ^(n)); and wherein the sequence of scaled Sr_(MSP) ^(N) signals are at least one of squarely weighted, logarithmically weighted, non-linearly weighted, and individually weighted. Further aspects of the non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method further comprising: generating the So_(LSP) ^(L) signal by a plurality of linear LSP Digital-to-Analog Converters (DAC_(LSP) ^(L))s comprised of a first linear LSP DAC (DAC1 _(LSP) ^(L)), and a second linear LSP DAC (DAC2 _(LSP) ^(L)); generating an output signal (So1 _(LSP) ^(L)) by the DAC1 _(LSP) ^(L) that is proportional to a first LSP reference signal (Sr1 _(LSP)), and is responsive to the Di_(MSP) word; combining the So1 _(LSP) ^(L) signal with a reference offset signal (Sr_(OFS)) to generate a second reference signal (Sr2 _(LSP) ^(L)); receiving the Sr2 _(LSP) signal into a reference input port (Ar2 _(LSP) ²) of the DAC2 _(LSP) ²; and generating the So_(LSP) ^(L) signal at an output port (Ao2 _(LSP) ^(L)) of the DAC2 _(LSP) ^(L) that is responsive to the Di_(LSP) word and the Di_(MSP) word. Further aspects of the non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method further comprising: multiplying the Di_(LSP) word and the Di_(MSP) word to generate a multiplication digital word (Di_(LSP)×Di_(MSP)); generating an output signal (So1 _(LSP) ^(L)) by a first LSP Digital-to-Analog Converter (DAC1 _(LSP) ^(L)), wherein the So1 _(LSP) ^(L) signal is proportional to a first LSP reference signal (Sr1 _(LSP)), and is responsive to the Di_(LSP)×Di_(MSP) word; generating an output offset signal (Sfo_(LSP) ^(L)) by a second LSP Digital-to-Analog-Converter (DAC2 _(LSP) ^(L)), wherein Sfo_(LSP) ^(L) signal is proportional to a second LSP reference signal (Sr2 _(LSP)), and is responsive to the Di_(LSP) word; and combining the So1 _(LSP) ^(L) signal and the Sfo_(LSP) ^(L) signal to generate the So_(LSP) ^(L) signal. Further aspects of the non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method further comprising: receiving the Di_(LSP) word and the Di_(MSP) word into a linearly meshed digital-input to analog-output multiplier (mDiSo_(LSP) ^(L)) to generate an output signal (So1 _(LSP) ^(L)) that is proportional to a first LSP reference signal (Sr1 _(LSP)); generating an output offset signal (Sfo_(LSP) ^(L)) by a second LSP Digital-to-Analog-Converter (DAC2 _(LSP) ^(L)) that is proportional to a second LSP reference signal (Sr2 _(LSP)), and is responsive to the Di_(LSP) word; and combining So1 _(LSP) ^(L) signal and the Sfo_(LSP) ^(L) signal to generated the So_(LSP) ^(L) signal. Further aspects of the non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method further comprising: generating at least one So_(MPS) ^(N) by at least one non-linear MSP Digital-to-Analog Converter (DAC_(MSP) ^(N)); generating at least one So_(LPS) ^(L) by at least one linear LSP Digital-to-Analog Converter (DAC_(LSP) ^(L)); generating at least one So_(N) signal that is proportional to the reference signal (S_(R)), wherein the at least one So_(N) signal is responsive to at least one D_(i) word; wherein the reference network of each of the DAC_(MSP) ^(L) is comprised of a sequence of non-linearly scaled MSP reference signals (Sr_(MSP) ^(L)) that are proportional to the Sr_(MSP) signal; wherein the reference network of each of the DAC_(LSP) ^(L) is comprised of a sequence of scaled LSP reference signals (Sr_(LSP) ^(L)) that are proportional to the Sr_(LSP) signal; wherein each of the sequence of Sr_(MSP) ^(N) signals is at least one of squarely weighted, logarithmically weighted, non-linearly weighted, and individually weighted; wherein each of the sequence of Sr_(LSP) ^(L) signals is at least one of binary weighted, linearly weighted, and individually weighted; and wherein each of the sequence of Sr_(MSP) ^(N) signals and each of the sequence of Sr_(LSP) ^(L) signals are biased from a common reference bias network (RBN). Further aspects of the non-linear digital-to-analog conversion (NDAC) method in an integrated circuit, the method further comprising: wherein a plurality of the at least one So_(N) signal has a square profile; wherein a p-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a p-channel D word; wherein a q-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a q-channel D word; wherein the p-channel So_(N) and the q-channel So_(N) signals are subtracted from one another to generate a scaled So_(xy) signal; wherein the p-channel D word is comprised of a scaled X digital word and a scaled Y digital word that are added to one another; wherein the q-channel D word is comprised of a scaled Y digital word and a scaled Y digital word that are subtracted from one another; and wherein the scaled So_(xy) signal is proportional to the S_(R), and is an analog representation of a scaled multiplication product of the scaled X digital word and the scaled Y digital word.

Another aspect of the present disclosure is a non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system comprising: a first non-linear Digital-to-Analog-Converter (DAC_(QM)), the DAC_(QM) comprising a digital input port (D_(QM)), an analog output port (Ao_(QM)), and an analog reference input port (Ar_(QM)); a first linear Digital-to-Analog-Converter (DAC_(1L)), the DAC_(1L) having a digital input port (D_(1L)), an analog output port (Ao_(1L)), and an analog reference input port (Ar_(1L)); a second linear Digital-to-Analog-Converter (DAC_(2L)), the DAC_(2L) having a digital input port (D_(2L)), an analog output port (Ao_(2L)), and an analog reference input port (Ar_(2L)); a digital input word (D) comprised of a Most-Significant-Bits (MSB)s bank word (D_(MSP)), and a Least-Significant-Bits (LSB)s bank word (D_(LSP)); a digital multiplier (X_(ML)), the X_(ML) having an M input digital word port (M), an N input digital word port (N), and an output digital word port (M×N); the M port coupled to the D_(MSP) bank word; the N port coupled to the D_(LSP) bank word; the D_(1L) port coupled to the output digital word port M×N; the D_(2L) port coupled to the digital word N port; the D_(QM) port coupled to the digital word M port; wherein a first reference signal (Sr_(QM)) is coupled to the Ar_(QM) port; wherein a second reference signal (Sr_(1L)) is coupled to the Ar_(1L) port; wherein a third reference signal (Sr_(2L)) is coupled to the Ar_(2L) port; wherein a sum of signals at the Ao_(1L) and Ao_(2L) ports is a straight-line approximation between non-linear segments of a signal at the Ao_(QM) port; wherein a sum of signals at the Ao_(QM), Ao_(1L), and Ao_(2L) ports generates a non-linear analog output signal (So_(N)) at an analog output port Ao_(N); wherein an analog reference signal (S_(R)) is proportionally scaled to an Sr_(QM), the Sr_(1L), and the Sr_(2L) signals; wherein a sequence of non-linear reference signals (Sr_(MSP) ^(n)), which form a transfer function of the DAC_(QM), are proportional to the S_(R) signal; wherein the sequence of Sr_(MSP) ^(N) signals are at least one of squarely weighted, logarithmically weighted, non-linearly weighted, and individually weighted; wherein a sequence of linear reference signals (Sr_(LSP) ^(L)), which form a transfer function of the DAC_(1L) and DAC_(2L), are proportional to the S_(R) signal; wherein the sequence of Sr_(LSP) signals are at least one of binary weighted, linearly weighted, and individually weighted; and wherein the So_(N) signal substantially follows one of a square, logarithmic, and non-linear profile, is proportional to the S_(R) signal, and responsive to the D word. Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: wherein the sequence of Sr_(MSP) ^(N) signals, and the sequence of Sr_(LSP) signals, are biased from a common reference bias network (RBN). Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: a plurality of So_(N) signals having a square profile; wherein a p-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a p-channel D word; wherein a q-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a q-channel D word; wherein the p-channel So_(N) and the q-channel So_(N) signals are subtracted from one another to generate a scaled So_(xy) signal; wherein the p-channel D word is comprised of a scaled X digital word and a scaled Y digital word that are added to one another; wherein the q-channel D word is comprised of a scaled Y digital word and a scaled Y digital word that are subtracted from one another; and wherein the scaled So_(xy) signal is proportional to the S_(R), and is an analog representation of a scaled multiplication product of the scaled X digital word and the scaled Y digital word. Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: the Ao_(QM) port, Ao_(1L) port, and Ao_(2L) port are coupled to an output port Ao_(Q); and wherein the DAC_(QM), DAC_(1L), and DAC_(2L) operate in current mode.

Another aspect of the present disclosure is a non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system comprising: a first non-linear digital-to-analog-converter (DAC_(QM)), the DAC_(QM) having a digital input port (D_(QM)), an analog output port (Ao_(QM)), and an analog reference input port (Ar_(QM)); a first linear digital-to-analog-converter (DAC_(1L)), the DAC_(1L) having a digital input port (D_(1L)), an analog output port (Ao_(1L)), and an analog reference input port (Ar_(1L)); a second linear digital-to-analog-converter (DAC_(2L)), the DAC_(2L) having a digital input port (D_(2L)), an analog output port (Ao_(2L)), and an analog reference input port (Ar_(2L)); a digital input word (D) comprised of a Most-Significant-Bits (MSB)s bank word (D_(MSP)) and a Least-Significant-Bits (LSB)s bank word (D_(LSP)); an MSB bank port (M) coupled to the D_(MSP) word; an LSB bank port (N) coupled to the D_(LSP) word; the D_(1L) port coupled to the M port; the D_(2L) port coupled to the N port; the D_(QM) port coupled to the M port; wherein a first reference signal (Sr_(QM)) is coupled to the Ar_(QM) port; wherein a second reference signal (Sr_(1L)) is coupled to the Ar_(1L) port; wherein a signal at the Ao_(1L) port (So_(1L)) is combined with a third reference offset signal (Sfr_(2L)) and combination of which is coupled to the Ar_(2L) port; wherein a signal at the Ao_(2L) port is a straight-line approximation between non-linear segments of a signal at the Ao_(QM) port; wherein a sum of signals at the Ao_(QM) and the Ao_(2L) ports generates a non-linear analog output signal (So_(N)) at an analog output port Ao_(N); wherein an analog reference signal (S_(r)) is proportionally scaled to the Sr_(QM), the Sr_(1L), and the Sr_(2L) signals; wherein a sequence of non-linear reference signals (Sr_(MSP) ^(N)), which form the transfer function of the DAC_(QM), are proportional to the S_(R) signal; wherein the sequence of Sr_(MSP) ^(N) signals are at least one of squarely weighted, logarithmically weighted, non-linearly weighted, and individually weighted; wherein the sequence of linear reference signals (Sr_(LSP) ^(L)), which form the transfer function of the DAC_(1L) are proportional to the S_(R) signal; wherein the sequence of Sr_(LSP) signals are at least one of binary weighted, linearly weighted, and individually weighted; and wherein the So_(N) signal substantially follows one of a square, logarithmic, and non-linear profile, is proportional to the S_(R) signal, and responsive to the D word. Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: wherein each of the sequence of Sr_(MSP) ^(N) signals, and each of the sequence of Sr1 _(LSP) ^(L) signals are biased from a common reference bias network (RBN). Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising a plurality of So_(N) signals having a square profile; wherein a p-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a p-channel D word; wherein a q-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a q-channel D word; wherein the p-channel So_(N) and the q-channel So_(N) signals are subtracted from one another to generate a scaled So_(xy) signal; wherein the p-channel D word is comprised of a scaled X digital word and a scaled Y digital word that are added to one another; wherein the q-channel D word is comprised of a scaled Y digital word and a scaled Y digital word that are subtracted from one another; and wherein the scaled So_(xy) signal is proportional to the S_(R) and is an analog representation of a scaled multiplication product of the scaled X digital word and the scaled Y digital word.

Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: the Ao_(QM) port and Ao_(2L) port are coupled to an output port Ao_(Q); and wherein the DAC_(QM), DAC_(1L), and DAC_(2L) operate in current mode.

Another aspect of the present disclosure is a non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system comprising: a first non-linear Digital-to-Analog-Converter (DAC_(QM)), the DAC_(QM) having a digital input port (D_(QM)), an analog output port (Ao_(QM)), and an analog reference input port (Ar_(QM)); a first linear Digital-to-Analog-Converter (DAC_(1L)), the DAC_(1L) having a digital input port (D_(1L)), an analog output port (Ao_(1L)), and an analog reference input port (Ar_(1L)); a linearly meshed digital-input to analog-output multiplier (mDiSo_(LSP) ^(L)), the mDiSo_(LSP) ^(L) having an M digital input port (M) and a N digital port (N), an analog output port (Ao_(2L)), and an analog reference input port (Ar_(2L)); a digital input word (D) comprised of a Most-Significant-Bits (MSB)s bank word (D_(MSP)) and a Least-Significant-Bits (LSB)s bank word (D_(LSP)); the M port coupled to the D_(MSP) word; the N port coupled to the D_(LSP) word; the D_(1L) port coupled to the N port; the D_(QM) port coupled to the M port; wherein a first reference signal (Sr_(QM)) is coupled to the Ar_(QM) port; wherein a second reference signal (Sr_(1L)) is coupled to the Ar_(1L) port; wherein a third reference signal (Sr_(2L)) is coupled to the Ar_(2L) port; wherein a sum of signals at the Ao_(1L) and Ao_(2L) ports is a straight-line approximation between non-linear segments of a signal at the Ao_(QM) port; wherein a sum of signals at the Ao_(QM), Ao_(1L), and Ao_(2L) ports generates a non-linear analog output signal (So_(N)) at an analog output port Ao_(N); wherein an analog reference signal (S_(R)) is proportionally scaled to the Sr_(QM), the Sr_(1L), and the Sr_(2L) signals; wherein a sequence of non-linear reference signals (Sr_(MSP) ^(N)), which form the transfer function of the DAC_(QM), are proportional to the S_(R) signal, wherein the sequence of Sr_(MSP) ^(N) signals are at least one of squarely weighted, logarithmically weighted, non-linearly weighted, and individually weighted; wherein the sequence of linear reference signals (Sr_(LSP)), which form the transfer functions of the DAC_(1L) and the mDiSo_(LSP) ^(L), are proportional to the S_(R) signal; wherein the sequence of Sr_(LSP) signals are at least one of binary weighted, linearly weighted, and individually weighted; wherein the So_(N) signal substantially follows one of a square, logarithmic, and non-linear profile, is proportional to the S_(R) signal, and responsive to the D word. Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated, the system further comprising: wherein each of the sequence of Sr_(MSP) ^(N) signals, each of the sequence of Sr1 _(LSP) ^(L) signals, and each of the sequence of Sr2 _(LSP) ^(L) signals are biased from a common reference bias network (RBN). Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: a plurality of So_(N) signals having a square profile; wherein a p-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a p-channel D word; wherein a q-channel So_(N) signal, of the plurality of So_(N) signals, is responsive to a q-channel D word; wherein the p-channel So_(N) and the q-channel So_(N) signals are subtracted from one another to generate a scaled So_(xy) signal; wherein the p-channel D word is comprised of a scaled X digital word and a scaled Y digital word that are added to one another; wherein the q-channel D word is comprised of a scaled Y digital word and a scaled Y digital word that are subtracted from one another; and wherein the scaled So_(xy) signal is proportional to the S_(R), and is an analog representation of a scaled multiplication product of the scaled X digital word and the scaled Y digital word. Further aspects of the non-linear digital-to-analog converter (NDAC) system in an integrated circuit, the system further comprising: the Ao_(QM) port, Ao_(1L) port, and Ao_(2L) port are coupled to an output port Ao_(Q); and wherein the DAC_(QM), DAC_(1L), and DAC_(2L) operate in current mode.

Another aspect of the present disclosure is a multiple channel current-mode data converter method in an integrated circuit, the method comprising: generating a sequence of reference bias current signals (Si_(Rb)) from a reference bias network (RBN); mirroring the sequence of Si_(Rb) signals from the RBN into at least one iDC; wherein the scaling of the mirroring of the sequence of Si_(Rb) signals from the RBN into at least one iDC, is individually scaled; wherein the sequence of Si_(Rb) signals from the RBN is weighted at least equally, binarily, non-linearly, and individually; wherein each Si_(Rb) signal from the sequence of Si_(Rb) signals from the RBN is scaled proportionately to a reference current signal (S_(R)); wherein each Si_(Rb) signal from the sequence of Si_(Rb) signals from the RBN is mirrored from the S_(R) signal; wherein the sequence of Si_(Rb) signals, from the RBN in the at least one iDC, program the reference current network of the at least one iDC, which establishes the input-to-output transfer function of the at least one iDC; wherein the at least one iDC is at least one of current-mode Digital-to-Analog-Converter (iDAC) and current-mode Analog-to-Digital-Converter (iADC); wherein if the at least one iDC includes an iDAC, then the analog output current signal of each iDAC is proportional to the S_(R) signal received by that iDAC, and responsive to a digital input word received by that iDAC; and wherein if the at least one iDC includes an iADC, then a digital output word of each iADC is responsive to the analog input current signal of that iADC and proportional to the S_(R) signal received by that iADC. Further aspects of the multiple channel current-mode data converter method in an integrated circuit, the method further comprising: regulating the S_(R) signal from the RBN; wherein the analog ports of the at least one iDC substantially track power supply voltage variations; and wherein if the at least one iDC includes an iDAC, then the analog output current signal of each iDAC is substantially desensitized with respect to power supply variations; and wherein if the at least one iDC includes an iADC, then a digital output word of each iADC is substantially desensitized with respect to power supply variations. Further aspects of the multiple channel current-mode data converter method in an integrated circuit, the method further comprising: wherein if the at least one iDC includes an iDAC: generating at least one pair of current output signals (S_(X) and S_(Y)) from at least one pair of iDACs (iDAC_(X), and iDAC_(Y)), that are proportional to the S_(R) signal, and responsive to the respective digital input words (D_(X) and D_(Y)) of the at least one pair of iDACs; receiving the at least one pair of S_(Y) and S_(Y) signals, respectively, into current input ports A_(mX) and A_(mY) of at least one analog current multiplier (iMULT); receiving at least one Si_(Rb) signal from the sequence Si_(Rb) signals from the RBN into a reference current input port (A_(mR)) of the at least one iMULT; and wherein an input-output transfer function of the at least one iMULT follows the relationship S_(Y)/S_(R)=S_(O)/S_(X), and wherein S_(O) signal is at least one output current signal of the at least one iMULT. Further aspects of the multiple channel current-mode data converter method in an integrated circuit, the method further comprising: wherein at least one of S_(R), S_(Y), S_(X), and S_(O) signals are generated without cascode. Further aspects of the multiple channel current-mode data converter method in an integrated circuit, the method further comprising: wherein the respective voltages at A_(mR) and A_(mY) ports track power supply voltage variations in substantial proportion to one another; wherein the respective voltages at A_(mX) and A_(mO) ports track power supply voltage variations in substantial proportion to one another; and wherein the at least one S_(O) signal of the at least one iMULT is substantially insensitive to power supply voltage variations. Further aspects of the multiple channel current-mode data converter method in an integrated circuit, the method further comprising: wherein if the at least one iDC includes an iDAC: wherein the sequence of Si_(Rb) signals from the RBN is weighted squarely; summing at least one pair of digital input words (D_(x) and D_(y)) together to generate at least a scaled D_(x+y) digital word; subtracting the at least one pair of digital input words D_(x) and D_(y) from one another to generate at least one scaled D_(x−y) digital word; receiving at least one pair of scaled digital input words (D_(x+y) and D_(x−y)) respectively into each of at least one pair of iDACs (iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ ); generating at least one pair of current output signals (S_((x+y)) ₂ and S_((x−y)) ₂ ) that are proportional to the S_(R), and responsive to the at least one pair of the scaled D_(x+y) and D_(x−y) words of the at least one pair of iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ ; subtracting from one another, each of the S_((x+y)) ₂ and S_((x−y)) ₂ signals of the at least one pair of iDACs (iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ ), to generate at least one multiplication output current signal (S_(iMULT)), wherein S_(iMULT) is the analog representation of a scaled product digital word (D_(x)×D_(y)). Further aspects of the multiple channel current-mode data converter method in an integrated circuit, the method further comprising: wherein if the at least one iDC includes an iDAC: wherein the sequence of Si_(Rb) signals from the RBN is weighted logarithmically; receiving at least one pair of digital input words (D_(X) and D_(Y)) respectively into at least one pair of the iDACs (iDAC_(log X), and iDAC_(log Y)); generating at least one pair of current output signals (S_(log X) and S_(log Y)) that are proportional to the S_(R) signal, and responsive to the at least one pair of D_(X) and D_(Y) words; and summing the S_(log Y) and S_(log Y) signals to generate at least one multiplication output current (S_(log MULT)), wherein S_(log MULT) is the analog representation of a digital logarithmic word (log D_(x)×D_(y)).

Another aspect of the present disclosure is a power supply desensitization method in a current-mode digital-to-analog converter (iDAC) in an integrated circuit, the method comprising: receiving a digital input word (D_(X)) into a x-channel iDAC (iDAC_(X)) having an analog output current signal (S_(X)), and a reference input signal (S_(RX)), wherein the iDAC_(X) is without cascodes; receiving a digital input word (D_(Y)) into a y-channel iDAC (iDAC_(Y)) having an analog output current signal (S_(Y)), and a reference input signal (S_(RY)), wherein the iDAC_(Y) is without cascodes; receiving the S_(X) signal into an input port of a power supply desensitization (PSR) circuit; regulating and generating the S_(RY) reference input signal at an output port of the PSR circuit, wherein the S_(Y) signal is desensitized from power supply variations; and generating a multiplication output current (S_(iMULT)) at the S_(Y) signal, wherein the S_(iMULT) signal is an analog representation of the product of the D_(X) and D_(Y) digital words.

Another aspect of the present disclosure is a multiple channel current-mode data converter system in an integrated circuit, the method comprising: a Metal-Oxide-Semiconductor-Field-Effect-Transistors (MOSFET)s each having a gate-port, a drain-port, and a source port, and each having a scale (W/L); a sequence of diode-connected MOSFETs, wherein the gate port and the drain port of each MOSFET in the sequence of the MOSFET are coupled together and coupled to a sequence of gate-drain ports; at least one current-mode Data-Converter (iDC), whose input-output transfer function profiles is programmed by a network of current reference signals of the at least one iDC, wherein the network of current reference signals of the at least one iDC is the network of sequence of signals at a sequence of drain ports of a sequence of mirroring MOSFETs; the sequence of gate-drain ports of the sequence of diode-connected MOSFETs coupled to a sequence of gate ports of the mirroring MOSFETs; wherein each S_(sR) signal in a sequence of S_(sR) signals is proportional to a current reference signal (S_(R)); wherein the sequence of S_(sR) signals is coupled to the respective sequence of gate-drain ports of sequence of diode-connected MOSFETs; wherein the sequence of scaled S_(sR) signals are scaled at least one of equally weighted currents, binarily weighted currents, non-linear weighted, and individually weighted currents; wherein the W/L scale of each MOSFET is programmed individually; wherein the iDC is at least one of current-mode Digital-to-Analog-Converter (iDAC) and current-mode Analog-to-Digital-Converter (iADC); wherein if the at least one iDC includes an iDAC, then the analog output current signal of each iDAC is proportional to the S_(R) signal received by that iDAC, and responsive to a digital input word received by that iDAC; and wherein if the at least one iDC includes an iADC, then a digital output word of each iADC is responsive to the analog input current signal of that iADC and proportional to the S_(R) signal received by that iADC.

Another aspect of the present disclosure is a multiple channel current-mode data converter system in an integrated circuit, the system comprising: a sequence of current mirrors (iCM), each iCM having a current mirror input port (Ai_(iCM)) for receiving a sequence of scaled reference current signals S_(R), a current mirror output port (Ao_(iCM)), and an input-to-output gain factor (G_(iCM)); a current mode data converter (iDC) having a sequence of reference input ports (Ar_(iDC)); the Ao_(iCM) port of each of the sequence of iCMs coupled to the respective Ar_(iDC) port of the sequence of Ar_(iDC) ports of the iDC; wherein each scaled reference current S_(R) of a sequence of scaled S_(R) signals is coupled respectively to the Ai_(iCM) port of each iCM of the sequence of iCMs; wherein the G_(iCM) of each iCM of the sequence of iCM is programmed individually; wherein the iDC is at least one of current-mode Digital-to-Analog-Converter (iDAC), and current-mode Analog-to-Digital-Converter (iADC); wherein the sequence of scaled S_(R) signals are scaled at least one of equally weighted currents, binarily weighted currents, non-linear weighted currents, and individually weighted currents; wherein if one or more iDC includes an iDAC, then the analog output current signal of each iDAC is proportional to the S_(R) signal received by that iDAC, and responsive to a digital input word received by that iDAC; and wherein if one or more iDC includes an iADC, then a digital output word of each iADC is responsive to the analog input current signal of that iADC and proportional to the S_(R) signal received by that iADC.

Another aspect of the present disclosure is a multiple channel current-mode data converter system in an integrated circuit, the system comprising: a sequence of current mirrors (iCM), each iCM having a current mirror input port (Ai_(iCM)) for receiving a sequence of scaled reference current signals (S_(R))s, a current mirror output port (Ao_(iCM)), and an input-to-output gain factor (G_(iCM)); one or more current mode data converters (iDC), each of the one or more iDCs having a sequence of reference input ports (Ar_(iDC)); each of the one or more Ao_(iCM) ports of each iCM of the sequence of iCMs respectively coupled to the Ar_(iDC) port of the sequence of Ar_(DC) ports of the one or more iDCs; wherein each scaled S_(R) signal of a sequence of scaled S_(R) signals is coupled respectively to the Ai_(iCM) port of each iCM of the sequence of iCMs; wherein the G_(iCM) of each iCM of the sequence of iCMs is programmed individually; wherein the one or more iDCs is at least one of a current-mode Digital-to-Analog-Converter (iDAC), and a current-mode Analog-to-Digital-Converter (iADC); wherein the sequence of scaled S_(R) signals are scaled at least one of equally weighted currents, binarily weighted currents, non-linear weighted currents, and individually weighted currents; wherein if one or more iDC includes an iDAC, then the analog output current signal of each iDAC is proportional to the S_(R) signal received by that iDAC, and responsive to a digital input word received by that iDAC; and wherein if one or more iDC includes an iADC, then a digital output word of each iADC is responsive to the analog input current signal of that iADC and proportional to the S_(R) signal received by that iADC.

Another aspect of the present disclosure is a multiple channel current-mode data converter system in an integrated circuit, the system comprising: a sequence of Current-Controlled-Voltage-Sources (CCVS)s, each CCVS in the sequence of the CCVSs having an input current port (Ai_(ccvs)) for receiving a sequence of scaled reference current signals (S_(R))s, an output port (Ao_(ccvs)) for providing an output voltage signal (So_(ccvs)), and an input-current to output-voltage gain factor (G_(ccvs)); a plurality of current mode data converters (iDC); each iDC of the plurality of iDCs having a sequence of Voltage-Controlled-Current-Sources (VCCS)s; each VCCS of the sequence of VCCSs, in each iDC of the plurality of iDCs, having an input voltage port (Ai_(vccs)), an output current port (Ao_(vccs)) for providing an output current signal (So_(vccs)), and an input-voltage to output-current gain factor (G_(vccs)); each Ao_(ccvs) port of the sequence of CCVSs, respectively coupled to each Ai_(vccs) port of the sequence of VCCSs, in each iDC of the plurality of iDCs; wherein each scaled S_(R) source of a sequence of scaled S_(R) sources is coupled respectively to the Ai_(ccvs) port of each CCVS of the sequence of CCVSs; wherein the sequence of VCCS in each iDC arranges the reference current network of each respective iDC which establishes the input-to-output transfer function of each respective iDC; wherein the G_(ccvs) of each CCVS of the sequence of CCVSs is programmed individually; wherein the G_(vccs) of each VCCS of the sequence of VVCSs in each iDC of the plurality of iDCs is programmed individually; wherein the one or more iDC of each iDC of the plurality of iDCs is at least one of a current-mode Digital-to-Analog-Converter (iDAC), and a current-mode Analog-to-Digital-Converter (iADC); wherein the sequence of scaled S_(R) sources are scaled at least one of equally weighted currents, binarily weighted currents, non-linear weighted currents, and individually weighted currents; wherein if one or more iDC includes an iDAC, then the analog output current signal of each iDAC is proportional to the S_(R) signal received by that iDAC, and responsive to a digital input word received by that iDAC; and wherein if one or more iDC includes an iADC, then a digital output word of each iADC is responsive to the analog input current signal of that iADC and proportional to the S_(R) signal received by that iADC.

Another aspect of the present disclosure is a multiple channel current-mode data converter method in an integrated circuit, the method comprising: generating a sequence of reference bias current signals (Si_(Rb)); receiving the sequence of Si_(Rb) signals into a sequence of Current-Controlled-Voltage-Sources (CCVS)s to generate a sequence of reference bias voltage signals (Sv_(Rb)); receiving the sequence of Sv_(Rb) signals into at least one sequence of Voltage-Controlled-Current-Sources (VCCS)s in at least one current mode data converter (iDC), wherein the at least one sequence of VCCSs replicates the sequence of Si_(Rb) signals; wherein the sequence of Si_(Rb) signals is weighted at least one of equally, binarily, non-linearly, and individually, and wherein each S_(Rb) signal is scaled proportionately to a reference current signal (S_(R)); wherein the sequence of VCCS in the at least one iDC arranges the reference current network of each respective iDC which establishes the input-to-output transfer function of each respective iDC; wherein the at least one iDC is at least one of current-mode Digital-to-Analog-Converter (iDAC) and current-mode Analog-to-Digital-Converter (iADC); wherein the analog output current signal of the iDAC is proportional to S_(R) signal and responsive to the digital input word of the iDAC; wherein the digital output word of the at least one iADC is responsive to the analog input current signal of the at least one iADC and proportional to the S_(R) signal; wherein if the at least one iDC includes an iDAC, then the analog output current signal of each iDAC is proportional to the S_(R) signal received by that iDAC, and responsive to a digital input word received by that iDAC; and wherein if the at least one iDC includes an iADC, then a digital output word of each iADC is responsive to the analog input current signal of that iADC and proportional to the S_(R) signal received by that iADC.

Another aspect of the present disclosure is a meshed multiplier system in an integrated circuit, the system comprising: a first digital input port having a of width of M bits of a first digital input word D_(X); a second digital input port having a width of N bits of a second digital input word D_(Y); a plurality of N scaled current source banks, each scaled current source bank uniquely corresponding to a bit of D_(Y); each of the N scaled current source banks comprising a plurality of M scaled current sources, each scaled current source having a corresponding first switch and a corresponding second switch, each current source uniquely corresponding to a bit of the first digital input word D_(X); each scaled current source in each scaled current source bank coupled to an input of its corresponding first switch, the first switch responsive to the bit of the first digital input word DX corresponding to the scaled current source; the first switch having an output coupled to an input of its corresponding second switch, the second switch responsive to the bit of the second digital input word D_(Y) corresponding to the scaled current source bank; the second switch having an output coupled to an output node; wherein the N scaled current source banks, are at least one of binarily weighted, linearly weighted, and individually weighted; wherein the plurality of M scaled current sources in each scaled current source bank, are at least one of binarily weighted, linearly weighted, and individually weighted; and wherein M is less than 17, and N is less than 17. Further aspects of the meshed multiplier system in an integrated circuit, the system further comprising: wherein M and N are equal.

Another aspect of the present disclosure is a meshed multiplier method in an integrated circuit, the method comprising: receiving a first digital input word DX of width of M bits, wherein M is less than 17; receiving a second digital input word D_(Y) of width of N bits, wherein N is less than 17; activating one bank of N banks of M scaled current sources responsive to a bit of D_(Y) corresponding to the one bank of N banks, thereby activating each of the M scaled current sources; receiving current into an output node from one of the activated M scaled current sources responsive to a corresponding bit of D_(X). Further aspects of the meshed multiplier system in an integrated circuit, the system further comprising: wherein M and N are equal.

Another aspect of the present disclosure is a meshed digital-input to analog current-output multiplier system in an integrated circuit, the system comprising: a digital-input to analog-output multiplier (XD_(i)I_(o)) comprised of a Ao_(XY) port, a first digital input port (D_(X)) wherein the DX port is M-bit wide, a second digital input port (D_(Y)) wherein the D_(Y) port is N-bit wide, and a reference port for receiving a S_(Ru) signal; the XD_(i)I_(o) comprising: a sequence of M meshed digital-input to analog current-output sub-multipliers (mD_(i)I_(o)), wherein each mD_(i)I_(o) is comprised of a first switch bank (iSW₁ ^(B)), a second switch bank (iSW₂ ^(B)), a current reference signals bank (S_(R) ^(B)), and a first digital 1-bit wide port (B_(M)); for each mD_(i)I_(o), each iSW₁ ^(B) switch bank comprised of a sequence of N switches, wherein the N control-ports of the N switches coupled together, and coupled to a 1-bit wide B_(M) port; for each mD_(i)I_(o), each iSW₂ ^(B) switch bank comprised of a sequence of N switches, wherein the gate-ports respectively coupled to the D_(Y) port. for each mD_(i)I_(o), the output ports of the first sequence of N switches of the iSW₁ ^(B) switch bank coupled to the input ports of the second sequence of N switches of the iSW₂ ^(B) switch bank; for each mD_(L)I_(o), each S_(R) ^(B) signal bank comprised of a sequence of N current reference signal ports (A_(R)) for receiving sequence of N scaled current reference signals (S_(R)), wherein the sequence of N scaled S_(R) signals is at least one of binarily weighted, linearly weighted, and individually weighted, and wherein each scaled S_(R) signal is proportional to the S_(Ru) signal; for each mD_(i)I_(o), the sequence of N scaled S_(R) sources of the S_(R) ^(B) signal banks coupled respectively to the sequence of N input ports of the iSW₁ ^(B) switch bank; for each mD_(i)I_(o), the sequence of N output ports of the iSW₂ ^(B) switch bank coupled to the Ao_(XY) port; for each mD_(i)I_(o), the sequence of M 1-bit wide B_(M) ports coupled to the respective M-bit wide DX ports; wherein for each mD_(L)I_(o), a sum of the sequence of N of scaled S_(R) sources of the S_(R) ^(B) banks is at least one of binarily weighted, linearly weighted, and individually weighted; and wherein the XD_(i)I_(o) generates an analog multiplication signal at the Ao_(XY) port, that is proportional to the S_(Ru) signal, and responsive to the multiplication product of digital words at the D_(X) and the D_(Y) ports.

Further aspects of the meshed digital-input to analog current-output multiplier system in an integrated circuit, the system further comprising: a plurality of the XD_(i)I_(o); the Ao_(XY) port from each of the plurality of XD_(i)I_(o)s coupled to an Ao_(MAC) port; wherein a signal through the Ao_(MAC) port is a multiply-accumulate current signal (So_(MAC)), wherein the So_(MAC) signal is a summation of signals through the plurality of Ao_(XY) ports; and wherein the So_(MAC) is proportional to the S_(Ru) source and responsive to a plurality of digital words that are the multiplication product of pairs of digital words inputted to a plurality of pairs of D_(X) and D_(Y) ports. Further aspects of the meshed digital-input to analog current-output multiplier system in an integrated circuit, the system further comprising: a bias current-mode Digital-to-Analog-Converter (iDAC) for generating a bias current signal (S_(B)), the bias current signal (S_(B)) coupled to the So_(MAC) signal to generate a biased multiply-accumulate current signal (So_(BMAC)), wherein the So_(BMAC) signal is the summation of the So_(MAC) signal and the S_(B) signal. Further aspects of the meshed digital-input to analog current-output multiplier system in an integrated circuit, the system further comprising: a current-mode Analog-to-Digital Converter (iADC) for digitizing the So_(BMAC) signal to generate a Do_(BMAC) word that is a digital representation of the So_(BMAC) signal. Further aspects of the meshed digital-input to analog current-output multiplier system in an integrated circuit, the system further comprising: each scaled S_(R) source, of the sequence of N scaled S_(R) sources of each of the S_(R) ^(B) signal bank of each mD_(i)I_(o), is biased from a common reference bias network (RBN). Further aspects of the meshed digital-input to analog current-output multiplier system in an integrated circuit, the system further comprising: a Metal-Oxide-Semiconductor-Field-Effect-Transistors (MOSFET)s each having a gate-port, a drain-port, and a source port, and each having a scale (W/L); and each switch, of the iSW₁ ^(B) switch bank of each mD_(i)I_(o), is a MOSFET wherein the input of the switch is the source-port of the MOSFET, the output of the switch is the drain-port of the MOSFET, and the control port of the switch is the gate-port of the MOSFET.

Another aspect of the present disclosure is a meshed digital-input to analog current-output multiplier system in an integrated circuit, the system comprising: a digital-input to analog-output multiplier (XD_(i)I_(o)) comprised of a Ao_(XY) port, a first digital input port (D_(X)) wherein the D_(X) port is w-bit wide, a second digital input port (D_(Y)) wherein the D_(Y) port is z-bit wide, and a reference input port for receiving a S_(Ru) signal; the XD_(i)I_(o) comprising: a plurality of Metal-Oxide-Semiconductor-Field-Effect-Transistors (MOSFET)s, each having a gate-port, a drain-port, and a source port, and each having a scale (W/L); a sequence of M meshed digital-input to analog current-output sub-multipliers (mD_(i)I_(o)), wherein each mD_(i)I_(o) is comprised of a first MOSFET bank (M₁ ^(B)), a second MOSFET bank (M₂ ^(B)), a current reference signals bank (Si), and a first digital 1-bit wide port (B_(W)); for each mD_(i)I_(o), each M₁ ^(B) comprised of a sequence of z MOSFETs, the gate-ports of the z MOSFETs coupled together, and coupled to a 1-bit wide B_(M) port; for each mD_(i)I_(o), each M₂ ^(B) comprised of a sequence of z MOSFETs, the gate-ports respectively coupled to the D_(Y) port; for each mD_(i)I_(o), the drain ports of the first sequence of z MOSFETs coupled to the source ports of the second sequence of z MOSFETs; for each mD_(L)I_(o), each S_(R) ^(B) signal bank comprised of a sequence of z current reference signal ports (A_(R)) for receiving z sequence of scaled current reference signals (S_(R)), wherein the sequence of z scaled S_(R) signals is at least one of binarily weighted, linearly weighted, and individually weighted, and wherein each scaled S_(R) signal is proportional to the S_(Ru) signal; for each mD_(i)I_(o), the sequence of z scaled S_(R) sources of the S_(R) ^(B) signal banks coupled respectively to the sequence of z input ports of the M₂ ^(B) switch bank; for each mD_(i)I_(o), the sequence of z output ports of the M₂ ^(B) switch bank coupled to the Ao_(XY) port; for each mD_(i)I_(o), the sequence of w 1-bit wide B_(W) ports coupled to the respective w-bit D_(X) ports; wherein for each mD_(i)I_(o), a sum of the sequence of z of scaled S_(R) sources of the S_(R) ^(B) banks is at least one of binarily weighted, linearly weighted, and individually weighted; and wherein the XD_(i)I_(o) generates an analog multiplication signal at the Ao_(XY) port, that is proportional to the S_(Ru) signal, and responsive to the multiplication product of digital words at the D_(X) and the D_(Y) ports.

Another aspect of the present disclosure is an approximate non-linear digital data-conversion (aNDC) method in an integrated circuit, the method comprising: wherein an at least one input digital word (Z) comprised of an at least one Most-Significant-Bits (MSB) portion digital word (Z_(MSP)) and an at least one Least-Significant-Bits (LSB) portion digital word (Z_(LSP)); generating an at least one square digital word (Z_(MPS) ²) from the at least one Z_(MSP) digital word, wherein the relationship between the at least one Z_(MSP) digital word and the at least one Z_(MPS) ² digital word follows a square profile; multiplying the at least one Z_(LSP) digital word and the at least one Z_(MSP) digital words to generate an at least one multiplication digital word (Z_(MSP)×Z_(LSP)); scaling the at least one Z_(MSP)×Z_(LSP) digital word by an at least one first binary scale factor (S_(L)) to generate an at least one scaled multiplication digital word (S_(L)×Z_(MSP)×Z_(LSP)); generating an at least one offset digital word (Z_(OFS)) proportional to the at least one Z_(LSP) digital word; scaling the at least one Z_(OFS) digital word by an at least one second binary scale factor (s_(O)) to generate an at least one scaled offset digital word (s_(o)×Z_(OFS)); and generating an at least one approximate square digital word (˜Z²) by combining together the at least one Z_(MPS) ² digital word, the at least one S_(L)×Z_(MSP)×Z_(LSP) digital word, and the at least one s_(o)×Z_(OFS) digital word, wherein the relationship between the at least one ˜Z² digital word and the at least one Z digital word follows an approximate square profile. Further aspects of the approximate non-linear digital data-conversion (aNDC) method in an integrated circuit, the method further comprising: generating an at least one summing absolute value digital word (|Z_(s)|), wherein the at least one Z_(s) digital word is an at least one summation of an at least two digital words (X+Y); generating an at least one deducting absolute value digital word (|Z_(d)|), wherein the at least one Z_(d) digital word is an at least subtraction of an at least two digital words (X−Y); generating an at least one summing approximate square digital word (˜|Z_(s)|²) wherein the relationship between the at least one ˜|Z_(s)|² digital word and the at least one |Z_(s)| digital word follows the approximate square profile; and generating an at least one deducting approximate square digital word (˜|Z_(d)|²) wherein the relationship between the at least one ˜|Z_(d)|² digital word and the at least one |Z_(d)| digital word follows the approximate square profile. Further aspects of the approximate non-linear digital data-conversion (aNDC) method in an integrated circuit, the method further comprising: generating an at least one approximate multiplication digital word (˜4X×Y) by subtracting the at least one ˜|Z_(d)|² digital word from the at least one ˜|Z_(s)|² digital word; and inputting the at least one ˜4X×Y digital word into an at least one Digital-to-Analog Converter (DAC) to generate an at least one approximate multiplication analog signal (˜4x′×y′). Further aspects of the approximate non-linear digital data-conversion (aNDC) method in an integrated circuit, the method further comprising: inputting the at least one ˜|Z_(s)|² digital word into an at least one subtracting Digital-to-Analog Converter (DACs) to generate an at least one subtracting approximate square analog signal (˜|z′_(s)|²; inputting the at least one ˜|Z_(d)|² digital word into an at least one deducting Digital-to-Analog Converter (DACs) to generate an at least one deducting approximate square analog signal (˜|z′_(d)|²; and generating an at least one approximate multiplication analog signal (˜4x′×y′) by subtracting the at least one ˜|z′_(d)|² analog signal from the at least one ˜|z′_(s)|² analog signal. Further aspects of the approximate non-linear digital data-conversion (aNDC) method in an integrated circuit, the method further comprising: generating an at least one plurality of approximate ˜4x′×y′ analog signals; generating an at least one approximate multiply-accumulate analog signal (˜Σ4x′×y′) by combining the at least one plurality of approximate ˜4x′×y′ analog signals; generating an at least one offset analog signal (b′) by inputting an at least one offset digital word (B) onto an at least one offset Digital-to-Analog Converter (DAC_(OFS)); generating an at least one offsetting approximate ˜Σ4x′×y′ analog signal (˜Σ4x′×y′+b′) by combining the at least one approximate ˜Σ4x′×y′ analog signal with the at least one b′ analog signal; and generating an at least one offsetting approximate multiply-accumulate digital word (˜Σ4X×Y+B) by inputting the at least one approximate ˜Σ4x′×y′+b′ analog signal onto an at least one Analog-to-Digital Converter, wherein the at least one approximate ˜Σ4X×Y+B digital word is responsive to the at least one approximate ˜Σ4x′×y′+b′ analog signal. Further aspects of the approximate non-linear digital data-conversion (aNDC) method in an integrated circuit, the method further comprising: combining an at least one plurality of the ˜Σ4X×Y+B digital word to arrange an at least one artificial neural network (ANN)

Another aspect of the present disclosure is a current mode multiply accumulate method in an integrated circuit, the method comprising: multiplying an at least one X digital word by an at least one Y digital word to generate an at least one multiplication digital word (X×Y); inputting the at least one X×Y digital word onto an at least one current-mode Digital-Analog-Converter to generate an at least one multiplication analog current signal (x′×y′); generating an at least one offset analog current signal (b′) by inputting an at least one offset digital word (B) onto an at least one offset current-mode Digital-to-Analog Converter (DAC_(OFS)); generating an at least one offsetting multiply-accumulate current signal (S_(iMAC)) by summing the at least one x′×y′ analog current signal with the at least one b′ analog current signal; and generating an at least one offsetting multiply-accumulate digital word (Sd_(MAC)) by inputting the at least one S_(iMAC) analog signal onto an at least one current-mode Analog-to-Digital-Converter, wherein the at least one Sd_(MAC) digital word is responsive to the at least one S_(iMAC) analog current signal. Further aspects of the current mode multiply accumulate method in an integrated circuit, the method further comprising: wherein multiplying the at least one X digital word by the at least one Y digital word to generate the at least one multiplication digital word (X×Y) further comprises; summing the at least one X and the at least one Y digital words to generate an at least one X+Y digital word (Z_(s)); subtracting the at least one Y and from the at least one X digital words to generate an at least one X−Y digital word (Z_(d)); generating an at least one summing absolute value digital word |Z_(s)| wherein the at least one |Z_(s)| digital word is the absolute value of the at least one Z_(s) digital word; generating an at least one deducting absolute value digital word |Z_(d)| wherein the at least one |Z_(d)| digital word is the absolute value of the at least one Z_(d) digital word; generating an at least one summing square digital word (|Z_(s)|²) wherein the at least one |Z_(s)|² digital word is the at least one square of |Z_(s)| digital word; generating an at least one deducting square digital word (|Z_(d)|²) wherein the at least one |Z_(d)|² digital word is the at least one square of |Z_(d)| digital word; generating an at least one 4×X×Y digital word by subtracting the at least one |Z_(d)|² word from the at least one |Z_(s)|²; and generating the at least one at least one aX×Y digital word by scaling the at least one 4×X×Y digital word. Further aspects of the current mode multiply accumulate method in an integrated circuit, the method further comprising: wherein generating at least one of the at least one summing square digital word |Z_(s)|² and the at least one deducting square digital word |Z_(d)|² to approximate a square value digital word (˜Z²) further comprises: wherein an input digital word (Z) comprised of a Most-Significant-Bits (MSB) portion digital word (Z_(MSP)) and a Least-Significant-Bits (LSB) portion digital word (Z_(LSP)); generating a square digital word (Z_(MPS) ²) from the Z_(MSP) digital word, wherein the relationship between the Z_(MSP) digital word and the Z_(MPS) ² digital word follows a square profile; multiplying the Z_(LSP) digital word and the Z_(MSP) digital words to generate a multiplication digital word (Z_(MSP)×Z_(LSP)); scaling the Z_(MSP)×Z_(LSP) digital word by a first binary scale factor (s_(L)) to generate a scaled multiplication digital word (s_(L)×Z_(MSP)×Z_(LSP)); generating an offset digital word (Z_(OFS)) proportional to the Z_(LSP) digital word; scaling the Z_(OFS) digital word by a second binary scale factor (s_(O)) to generate a scaled offset digital word (s_(o)×Z_(OFS)); and generating an approximate square digital word (˜Z²) by combining together the Z_(MPS) ² digital word, the S_(L)×Z_(MSP)×Z_(LSP) digital word, and the s_(o)×Z_(OFS) digital word, wherein the relationship between the ˜Z² digital word and the Z digital word follows an approximate square profile. Further aspects of the current mode multiply accumulate method in an integrated circuit, the method further comprising: combining an at least one plurality of the at least one of Sd_(MAC) digital words to arrange an at least one artificial neural network (ANN).

Another aspect of the present disclosure is a segmented squaring method in an integrated circuit, the method comprising: wherein an at least one input signal (Z) further comprising of an at least one Most-Significant-Portion (MSP) signal (Z_(MSP)) and an at least one Least-Significant-Portion signal (Z_(MSP)); generating an at least one MSP squared signal (Z_(MPS) ²) by squaring the at least one Z_(MSP) signal; generating an at least one LSP squared signal (Z_(LPS) ²) by squaring the at least one Z_(LSP) signal; and generating an at least one LSP and MSP cross-multiplication signal (Z_(LSP)×Z_(MSP)) by multiplying the at least one Z_(LSP) signal with the at least one Z_(MSP) signal. Further aspects of the segmented squaring method in an integrated circuit, the method further comprising: scaling the at least one Z_(MPS) ² signal by an at least one top-scale-factor (s_(T)) to generate an at least one s_(T)×Z_(MPS) ² signal; scaling the at least one Z_(LPS) ² signal by an at least one bottom-scale-factor (s_(B)) to generate an at least one s_(B)×Z_(LPS) ² signal; scaling the at least one Z_(LSP)×Z_(MSP) signal by an at least one middle-scale-factor (s_(M)) to generate an at least one s_(M)×Z_(LSP)×Z_(MSP) signal; and generating an at least one square signal (Z²) of the at least one Z signal by combining the at least one s_(T)×Z_(MPS) ², the at least one s_(B)×Z_(LPS) ², and the at least one s_(M)×Z_(LSP)×Z_(MSP). Further aspects of the segmented squaring method in an integrated circuit, the method further comprising: generating an at least one square analog signal (z′²) by inputting the at least one Z² signal into an at least one Digital-to-Analog-Converter (DAC); and wherein the scale of the at least one z′² analog signal is proportional to an at least one reference input signal (S_(R)) of the at least one DAC. Further aspects of the segmented squaring method in an integrated circuit, the method further comprising: combining more than one of the at least one z′² analog signals to generate an at least one square-accumulate analog signal (Σz′²). Further aspects of the segmented squaring method in an integrated circuit, the method further comprising: utilizing current mode DACs; and coupling more than one of the at least one z′² current analog signals to generate an at least one square-accumulate current analog signal (Σz′²).

Another aspect of the present disclosure is a quarter square method of multiply-accumulate signals in integrated circuits, the method comprising: adding an at least one P signal to an at least one Q signal to generate an at least one sum signal (P+Q); generating an at least one absolute value of the P+Q signal (|P+Q|); subtracting the at least one Q signal from the at least one P signal to generate an at least one subtraction signal (P−Q); generating an at least one absolute value of the P−Q signal (|P−Q|); squaring the at least one |P+Q| signal to generate an at least one sum square signal (|P+Q|²); and squaring the at least one |P−Q| signal to generate an at least one subtraction square signal (|P−Q|²). Further aspects of the quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: subtracting the at least one |P−Q|² signal from the at least one |P+Q|² signal to generate an at least one scaled product signal (4×P×Q); and scaling the at least one scaled product signal 4×P×Q to generate an at least one product signal (P×Q). Further aspects of the quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: combining more than one of the at least one P×Q signals to generate an at least one multiply-accumulate signal (ΣP×Q). Further aspects of the quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: inputting the at least one product signal (P×Q) into an at least one Digital-to-Analog-Converter (DAC) to generate an at least one analog product signal (p′×q′). Further aspects of the quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: combining more than one of the at least one p′×q′ analog signal to generate an at least one analog multiply-accumulate signal (Σp′×q′). Further aspects of the quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: inputting the at least one |P−Q|² signal into an at least one deducting Digital-to-Analog-Converter (DAC) to generate an at least one |p′−q′|² analog signal; and inputting the at least one |P+Q|² signal into an at least one summing DAC to generate an at least one |p′+q′|² analog signal. Further aspects of the quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: subtracting the at least one |p′−q′|² analog signal from the at least one |p′+q′|² analog signal to generate an at least one scaled product analog signal (4×p′×q′); and scaling the at least one scaled product signal 4×p′×q′ to generate an at least one product analog signal (p′×q′). Further aspect of quarter square method of multiply-accumulate signals in integrated circuits, the method further comprising: utilizing current mode DACs.

Another aspect of the present disclosure is a meshed multiplier system for compute-in-memory in an integrated circuit, the system comprising: a plurality of digital-input to analog-output current multipliers (XD_(I)I_(O) multiplier), each XD_(I)I_(O) multiplier comprising at least one of a positive analog output port (A_(O+XY) port) and a negative analog output port (A_(O−XY) port), a X digital input port (D_(X) port) having a bit-width of M, a Y digital input port (D_(Y) port) having a bit-width of N, each XD_(I)I_(o) multiplier comprising: a plurality of composite switched scaled current sources (CI_(SW) source), each CI_(SW) source comprising a plurality of N current analog input ports (CIi_(SW) port), at least one of a positive current output port (IO+ port) and a negative current output port (IO− port), a plurality of N composite Y switch control ports (CIy_(SW) ports), and a composite X switch control port (CIx_(SW) port); an plurality of N composite current switches (iSW_(C) switch); each iSW_(C) switch comprising a current analog input port (iSWi_(C) port), at least one of a positive current analog output port (iSW_(O+C) port) and a negative current analog output port (iSW_(O−C) port), and two control digital input ports (iSWx_(C) port, iSWy_(C) port), wherein a current signal from the iSWi_(C) port is passed onto the iSW_(O+C) port only if the iSWx_(C) port and the iSWy_(C) port are both asserted, otherwise, at least one of the current signal from the iSWi_(C) port is passed onto the iSW_(O−C) port and a substantially zero current signal is passed onto the iSW_(O+C) port; for the plurality of CI_(SW) sources, each CI_(SW) source comprising a plurality of N iSW_(C) switches; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, the iSWi_(C) port of each iSW_(C) switch is coupled with a scaled current source (IQ source) of a plurality of N scaled IQ sources; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, at least one of the iSW_(O+C) port of each iSW_(C) switch is coupled with the IO+ port of the CI_(SW) source, and the iSW_(O−C) port of each iSW_(C) is coupled with the IO− port of the CI_(SW) source; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, all of the iSWx_(C) ports are coupled with the CIx_(SW) port, and wherein the CIx_(SW) port is responsive to a uniquely corresponding bit of the D_(X) port; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, each iSWy_(C) port is coupled with a uniquely corresponding CIy_(SW) port of the plurality of N CIy_(SW) ports, and wherein the plurality of N CIy_(SW) ports respectively responsive to corresponding N bits of the D_(Y) port; wherein the plurality of N I_(Q) sources within each CI_(SW) source are at least one of binarily weighted, linearly weighted, and individually weighted with respect to one another; and wherein N is less than 20. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: a plurality of M CI_(SW) sources of the plurality of CI_(SW) sources; for each CI_(SW) source in the plurality of M CI_(SW) sources, a plurality of M CIx_(SW) ports, and wherein the plurality of M CIx_(SW) ports are respectively responsive to corresponding M bits of the D_(X) port; and wherein M is less than 20. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: wherein at least one of the D_(X) port and the D_(Y) port is coupled to at least one of a Latch array, a Static-Random-Access-Memory (SRAM) array, an Erasable-Programmable-Read-Only-Memory (EPROM) array, and an Electrically-Erasable-Programmable-Read-Only-Memory (E²PROM) array. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: at least one of a plurality of M IO+ ports and a plurality of M IO− ports within the plurality of M CI_(SW) sources of the plurality of CI_(SW) sources; and at least one of the A_(O+XY) port and the A_(O−XY) port of the XD_(I)I_(o) multiplier respectively coupled to at least one of the IO+ port of the plurality of M IO+ ports, and the IO− port of the plurality of M IO− ports. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: at least one of a plurality of M IO+ ports and a plurality of M IO− ports within the plurality of M CI_(SW) sources of the plurality of CI_(SW) sources; and at least one of a current flowing through an at least one of the IO+ port (I_(IO)+ current) and the IO− port (I_(IO)− current), for each of the CI_(SW) source within the plurality of M CI_(SW) sources; wherein, when the D_(X) and D_(Y) ports are both asserted, then the respective scaling of each of the I_(IO)+ currents in the plurality of M CI_(SW) sources is at least one of binarily weighted, linearly weighted, equally weighted, and individually weighted with respect to one another; and wherein, when the digital bits at both D_(X) and D_(Y) ports are not asserted, then the respective scaling of each of the I_(IO)− currents in the plurality of M CI_(SW) sources is at least one of binarily weighted, linearly weighted, equally weighted, and individually weighted with respect to one another. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: the IO+ port of one CI_(SW) source coupled to the IO+ port of at least one other CI_(SW) source, and the IO− port of one CI_(SW) source coupled to the IO− port of at least one other CI_(SW) source. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: a plurality of the XD_(I)I_(o) multiplier wherein at least one of a plurality of A_(O−XY) ports are coupled together, and a plurality of A_(O+XY) ports are coupled together. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: a bias current Digital-To-Analog-Converter (biDAC) comprising of at least one of a positive analog output port (A_(OB+) port) and a negative analog output port (A_(OB−) port); and the at least one of the plurality of A_(O+XY) ports and the plurality of A_(O−XY) ports of the plurality of the XD_(I)I_(O) multipliers, respectively coupled to at least one A_(OB+) port, and one A_(OB−) port. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: at least one of a current input comparator (iCOMP) and a current input Analog-To-Digital-Converter (iADC), each having at least one of a negative current input port (A_(IC)+ port) and a positive current input port (A_(IC)− port); and at least one of the A_(IC)+ port, and the A_(IC)− port, respectively coupled to at least one of the A_(O+XY) port, and the A_(O−XY) port. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: wherein at least one of the D_(X) port and the D_(Y) port is coupled to at least one of a Latch array, a Static-Random-Access-Memory (SRAM) array, an Erasable-Programmable-Read-Only-Memory (EPROM) array, and an Electrically-Erasable-Programmable-Read-Only-Memory (E²PROM) array. Further aspect of the present disclosure is the meshed multiplier system for compute-in-memory in an integrated circuit, the system further comprising: each XD_(I)I_(O) multiplier comprising a reference current port (A_(R) port) couple to a reference current source (IR source); each I_(Q) source within each CI_(SW) source has a value proportional to a value of the IR source; and wherein the value of each IR source is established by at least one of a Digital-To-Analog Converter, and fixed.

DETAILED DESCRIPTION

Numerous embodiments are described in the present application and are presented for illustrative purposes only and is not intended to be exhaustive. The embodiments were chosen and described to explain principles of operation and their practical applications. The present disclosure is not a literal description of all embodiments of the disclosure(s). The described embodiments also are not, and are not intended to be, limiting in any sense. One of ordinary skill in the art will recognize that the disclosed embodiment(s) may be practiced with various modifications and alterations, such as structural, logical, and electrical modifications. For example, the present disclosure is not a listing of features which must necessarily be present in all embodiments. On the contrary, a variety of components are described to illustrate the wide variety of possible embodiments of the present disclosure(s). Although particular features of the disclosed embodiments may be described with reference to one or more particular embodiments and/or drawings, it should be understood that such features are not limited to usage in the one or more particular embodiments or drawings with reference to which they are described, unless expressly specified otherwise. The scope of the disclosure is to be defined by the claims.

Although process (or method) steps may be described or claimed in a particular sequential order, such processes may be configured to work in different orders. In other words, any sequence or order of steps that may be explicitly described or claimed does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order possible. Further, some steps may be performed simultaneously despite being described or implied as occurring non-simultaneously (e.g., because one step is described after the other step). Moreover, the illustration of a process by its depiction in a drawing does not imply that the illustrated process is exclusive of other variations and modifications thereto, does not imply that the illustrated process or any of its steps are necessary to the embodiment(s). In addition, although a process may be described as including a plurality of steps, that does not imply that all or any of the steps are essential or required. Various other embodiments within the scope of the described disclosure(s) include other processes that omit some or all of the described steps. In addition, although a circuit may be described as including a plurality of components, aspects, steps, qualities, characteristics and/or features, that does not indicate that any or all of the plurality are essential or required. Various other embodiments may include other circuit elements or limitations that omit some or all of the described plurality.

Consider that all the figures comprised of circuits, blocks, or systems illustrated in this disclosure are powered up by positive and negative power supplies, V_(DD) and V_(SS) (and V_(SS) can be connected to the ground potential or zero volts for single supply applications), respectively (unless otherwise specified), and they are not shown for illustrative clarity of the disclosed figures. Terms FET is field-effect-transistor; MOS is metal-oxide-semiconductor; MOSFET is MOS FET; PMOS is p-channel MOS; NMOS is n-channel MOS; BiCMOS is bipolar CMOS. Throughout this disclosure, the body terminal of NMOSFET can be connected to the source terminal of NMOSFET or to V_(SS). Also, the body terminal of PMOSFET can be connected to the source terminal of PMOSFET or to V_(DD). The term V_(GS) is gate-to-source port voltage of a MOSFET. The term VDS is drain-to-source port voltage of a MOSFET. The term I_(DS) or I_(D) is drain current of a MOSFET. The term V_(A) is a device parameter, and the early voltage a MOSFET.

All the data-converters including, analog-to-digital-converters (ADC) as well as digital-to-analog-converters (DAC) may not show, for illustrative clarity, a positive reference and a negative reference input, where the negative reference input can be connected to the ground potential or zero volts. A current-mode DAC is iDAC, and a current-mode ADC is iADC. A current analog switch (iSW) has one input, one digital control signal, and either one or two output ports that receive the iSW input signal. An iSW with two output ports, steer the iSW's input signal to either of iSW's output ports depending on the polarity of the iSW digital control signal. An iSW with one output, steer the iSW's input signal to iSW's the positive output port or blocks it depending on the polarity of the iSW digital control signal. Most-Significant-Bit is MSB and Least-Significant-Bit is LSB, pertaining to data-converters digital bits. Most-Significant-Portion is MSP and Least-Significant-Portion is LSP, pertaining to the portions of signals represented by the MSB bank digital-word and LSB bank digital-word of data-converters, wherein the data-converter's whole digital word is comprised of the LSB bank digital-word plus the MSB bank digital-word.

The term non-linear data-converter (DAC or ADC) refers to a data-converter whose transfer function (as arranged by the data-converter's reference network) is non-linearly weighted (e.g., square or logarithmic or individually weighted). Similarly, the term linear data-converter (DAC or ADC) refers to a data-converter whose transfer function (as arranged by the data-converter's reference network) is linearly weighted (e.g., binary or equally weighted thermometer).

Throughout this disclosure, for demonstrative and descriptive clarity, data-converter that may be illustrated with 2 to 8 bits of resolution, but they can be arranged with higher resolutions, unless otherwise specified (e.g., disclosed data-converters can have higher resolutions where 16-bits of resolution is practical). Moreover, for descriptive clarity illustrations are simplified, where their modifications for improvements would be obvious to one skilled in the arts, such as for example cascading current sources by stacking MOSFETs to increase their output impedance. In some instances, analog switches are shown as single FETs with one input, one output, and a control input. In such instances, the one FET acting as a switch can be replaced with two FETs with a common input but opposite control polarity to manage the switch input's on and off voltage span and improve on-off glitch transients.

Consider that other manufacturing technologies, such as Bipolar, BiCMOS, and others can utilize the disclosure in whole or part.

Unless otherwise specified, the illustrated data-converters are generally asynchronous (i.e., they are clock free) which eliminates the need for a free running clock and improves dynamic power consumption with lower clock noise. However, the methods, systems, or circuits disclosed generally are applicable to data-converters that are synchronous (i.e., requiring clocks).

This disclosure presents several SPICE circuit simulations showing the various waveforms attributed to the disclosed data-converts and multipliers. The simulations are performed in order to demonstrate functionality of the disclosed embodiments. These simulations are not intended to guarantee the embodiment's performance to a particular range of specifications. Be mindful that circuit simulations use the TOPSPICE simulator, and are based on approximate device models for a typical standard mainstream 0.18 m CMOS process fabrication.

Throughout this disclosure, data-converters utilized in multipliers and multiply-accumulate circuits operate in current-mode and generally have the following benefits:

First, data-converters operating in current-mode are inherently fast.

Second, current signal processing that occurs within the nodes of data-converters, generally, have small voltage swings which enables operating the current-mode data-converters with lower power supply voltages.

Third, operating at low supply voltage reduces power consumption of current-mode data-converters.

Fourth, current input and current output zero-scale to full-scale spans of current-mode data-converters are less restricted by power supply voltage levels (e.g., current input and outputs can generally span to full-scale at minimum power supply voltages)

Fifth, current mode CMOS data-converters can operate in subthreshold that enables reducing power consumption further.

Sixth, summation and subtraction functions in analog current-mode is generally simple and takes small chip area. For example, summation of two analog currents could be accomplished by coupling the current signals. Depending on accuracy and speed requirements, subtraction of analog current signals could be accomplished by utilizing a current mirror where the two analog current signals are applied to the opposite side of the current mirror, for example.

Seventh, current-mode data-converters can operate internally in mixed-mode and externally have compatible interface with conventional digital processors. For example, digital-to-analog converters and multipliers can operate in current mode analog and or mixed-mode and subsequently have their current mode computations be converted to digital in order to seamlessly interface with standard digital processors via current-mode analog-to-digital converters.

Eight, accuracy of mixed-signal current-mode data-converters, depending on the architecture, generally depends (at least in part) on the matching between FET current sources in the data-converter's current reference or bias network that programs their transfer function. Moderate conversions speeds with typical accuracies up to 16-bits with trimming or calibration and up to 10-bits without trimming or calibration may be achievable in standard CMOS manufacturing, where non-minimum size FETs are utilized to form the data-converter's current reference or bias network. Such accuracies can be sufficient for a range of near-edge or near-sensor machine learning and artificial intelligence (ML & AI) applications that may also not require extremely fast computation speeds. As such, some near-edge or near-sensor ML & AI applications can benefit from the low-cost and low-power of mixed-signal current-mode computation that only requires low cost conventional CMOS manufacturing, as compared to high-speed power-hungry high-precision digital processors that require the substantially more expensive deep-sub-micron CMOS technologies.

Ninth, iDACs, iADCs, and digital-input to current analog-output multipliers can be placed out next to local memory cells such as SRAM, EPROM, and E²PROM to perform signal processing next to memory. Such Compute-In-Memory (CIM) or Compute-Near-Memory (CNM) signal processing which can reduce dynamic power consumption by arranging the digital memory cells near the digital computation cells for faster communications and reducing the digital read/write cycles times in and out of memory.

Section 1—Description of FIG. 1

FIG. 1 is a simplified block diagram illustrating a floating current-mode (i) digital-to-analog-converter (iDAC) method.

The disclosed floating iDAC method, substantially equalizes a reference current signal (I1 ₁) with the sum of a plurality of currents that are generated by plurality of floating voltage controlled current sources (VCCS). The plurality of VCCS's currents are scaled by programming each of the VCCS's voltage-to-current transconductance gains (G). Moreover, the plurality of VCCS's currents are selected by a plurality of respective current switches (iSWs) wherein the iSWs are controlled by the iDAC's digital input word, to steer the iSW's respective outputs to iDAC's outputs (I_(O) ⁺, and I_(O) ⁻).

The floating iDAC method can be utilized in an iDAC having a n-bit (n≤16) wide digital word (Di₁), a current reference signal (I1 ₁), and two analog current outputs such as a first analog current output terminal Io₁′ and a second analog current output terminal Io₁ ⁻ (coupled with a bias voltage source such as V1 ₁). The floating iDAC method is illustrated in a system diagram of FIG. 1 having plurality (e.g., n=3) of VCCSs or voltage controlled current sources (e.g., G1 ₁, G2 ₁, and G3 ₁). Each VCCS has a positive input voltage terminal and a negative input voltage terminal (VCCS_(V) ⁺, and VCCS_(V) ⁻) and a positive output current terminal and a negative output current terminal (VCCS_(I) ⁺, and VCCS_(I) ⁻). The respective VCCS's output currents (e.g., I_(G3) ₁ , I_(G2) ₁ , and I_(G1) ₁ ) flow-in is the respective VCCS's positive current output terminals VCCS_(I) ⁺s and flow-out of the respective VCCS's negative current output terminals VCCS_(I) ⁻s. At node ng1, the floating iDAC method receives a reference current signal I1 ₁. Each of the negative input voltage terminals of the plurality of VCCSs, and each of the negative output current terminals of plurality of VCCSs are coupled together at node ng1. Each of the positive input voltage terminal of the plurality of VCCSs are coupled together that is also coupled with a voltage signal from a voltage source V2 ₁. Consider that, I_(G3) ₁ , I_(G2) ₁ , and I_(G1) ₁ current sources are floating on I1 ₁ which is a floating iDAC's reference current source. There is a plurality of current switches (iSW) each with a digital control input, an analog current input, and two analog current output terminals. The respective digital control inputs of the plurality of iSWs are coupled with the respective plurality of iDAC's digital input bits (that make up the digital word Di₁). When the iSW's digital control input is enabled (e.g., positive polarity), then the iSW's analog input current is routed to Io₁ ⁺ which a first analog current output of iDAC. When the iSW's digital control input is disabled (e.g., negative polarity), then the iSW's analog current input is routed to the second analog current output of iDAC or Io₁ ⁻.

In illustration of FIG. 1, given V2 ₁−V_(ng) ₁ =V_(f1), then I_(G1) ₁ =V_(f1)×S₁×g, I_(G2) ₁ =V_(f1)×S₂×g, and I_(G3) ₁ =V_(f1)×S₃×g. As noted earlier, the plurality of output currents (e.g., I_(G1) ₁ , I_(G2) ₁ , and I_(G3) ₁ ) of the respective the VCCSs (e.g., G1 ₁, G2 ₁, and G3 ₁, respectively) are fed onto the respective plurality of iSW's inputs. Accordingly, I_(G1) ₁ +I_(G2) ₁ +I_(G3) ₁ =I1 ₁=I_(R), where I_(R) is the reference current to the iDAC and establishes the full-scale out of the iDAC. The V_(f1) is the voltage input to each of the VCCSs. The transconductance gain of a single unit VCCS is g, which is scaled by programming the gain scale factors (e.g., s₁, s₂, and s₃) for each respective VCCS.

Let's consider programming the VCCS's gain factors for a binary weighted iDACs. In a general, a simplified transfer function for an iDAC is:

${I_{o} = {{I_{R}{\sum\limits_{i = 1}^{n}{D_{i}/2^{i}}}} = {{\left( {I_{R}/2^{n}} \right){\sum\limits_{i = 1}^{n}{D_{i} \times 2^{i - 1}}}} = {\Delta_{R}{\sum\limits_{i = 1}^{n}{D_{i} \times 2^{i - 1}}}}}}},$ where for the iDAC, I_(o) is the analog output current, I_(R) is the reference input current that can set the full-scale value of I_(o), D_(i) is the digital input word (that is n-bits) wide, and Δ_(R)=(I_(R)/2^(n)) is the analog LSB current weight of I_(o). For an iDAC with n=3, by programming gain scale factors s₁=1, s₂=2, and s₃=4, then I_(G1) ₁ =I_(G1) ₂ /2/I_(G1) ₃ /4 which is a binary weighted current source network, whose binary weighted current sources are selected by iSWs in accordance with the Di₁ digital input word of the iDAC. Note that the iDAC's full scale is I_(R)=I1 ₁=I_(G1) ₁ +I_(G1) ₂ /2+I_(G1) ₃ /4. Note also that the VCCS's gain scale factors can be programmed to other ratios, including but not limited to, substantially equal ratio (which enables making a thermometer coded current-mode DAC), or non-linear ratio (which enables making for example a logarithmic current-mode DAC or a current-mode DAC with a square transfer fiction). Some of the benefits of the floating iDAC method is highlighted in its embodiment disclosed in FIG. 2 section 2 next.

Section 2—Description of FIG. 2

FIG. 2 is a simplified circuit schematic diagram illustrating an embodiment of an iDAC that utilizes the floating iDAC method illustrated in FIG. 1.

As noted earlier, for illustrated clarity, a n=3 bits binary weighted iDAC is described but n can be as large of 16 bits. Bias voltage V2 ₂ provides the positive input voltage to the gate terminal of 3 field-effect-transistors (FETs) M4 ₂, M5 ₂, and M6 ₂, which perform the function of the three VCCSs (corresponding to G1 ₁, G2 ₁, and G3 ₁ functions in FIG. 1, respectively) as floating current sources. By the scaling width over length ratios (W/L) of M4 ₂, M5 ₂, and M6 ₂, the respective plurality of VCCS's transconductance gain factors can be programmed. Bear in mind that, I_(M4) ₂ , I_(M5) ₂ , and I_(M6) ₂ may be described as floating current sources on I_(M2) ₂ . For nomenclature clarity consider that, as an example, I_(M2) ₂ refers to the drain-to-source current of MOSFET M2 ₂, which is a manner of terminology is applied throughout out this disclosure. In a binary weighted iDAC, the gain factors s₁=1, s₂=2, and s₃=4, and as a result I_(M6) ₂ =I_(M5) ₂ /2 I_(M4) ₂ /4. Consider that s₄ scale ratio of M3 ₂ is not critical and can be programmed to, for example, 1 in the binary weighted iDAC case, so long as the drain-to-source voltage (V_(DS)) of M1 ₂ and M2 ₂ are matched close enough to keep the FET's early voltage (V_(A)) mismatch error within design objectives. By operation of the Kirchhoff's current law (KCL) at node ng₂, I_(M6) ₂ +I_(M5) ₂ +I_(M4) ₂ =I_(M2) ₂ , which substantially equalizes the full-scale current of the iDAC to I_(M2) ₂ IR, (notice that I_(M2) ₂ of FIG. 2 is analogous to equivalent of I_(R)=I1 ₁ of FIG. 1). The iDAC's digital-input words, from Most-Significant-Bit (MSB) D3 ₂ to Least-Significant-Bit (LSB) D1 ₂ control the respective iDAC's iSWs: M7 ₂-M8 ₂, M9 ₂-M10 ₂, and M11 ₂-M12 ₂. For example, when D3 ₂ is in high state (i.e., MSB is on), then the iSW M8 ₂ is on and iSW M7 ₂ is off and accordingly I_(M4) ₂ is steered through M8 ₂ to the iDAC's current output port Io₂ ⁺. If D3 ₂ is in low state, then M4 ₂'s current is steered through M7 ₂ to the iDAC's second current output port Io₂ ⁻. Similarly, and in accordance with the polarity of the iDAC's digital input words, the iSWs steer the respective iDAC's binary weighted currents I_(M4) ₂ , I_(M5) ₂ , and I_(M6) ₂ onto either the Io₂ ⁺ port (which is the iDAC's first analog current output port) or the second iDAC analog current output port Io₂ ⁻ (that is in this case shunted onto voltage source V1 ₂).

For illustrative clarity, programming current mirror scale factor a=b=1, then I1 ₂=I_(M1) ₂ =I_(M2) ₂ =I_(R′). The injection currents I2 ₂=I3 ₂ are applied to both side of M1 ₂-M2 ₂ current mirror to prevent the said mirror from shutting off, thus improving its dynamic response, when I1 ₂ is pulsed between zero and full scale. Also, consider that by utilizing the floating iDAC method, the scaling of iDAC reference current network (e.g., M4 ₂, M5 ₂, and M6 ₂) are decoupled from the scaling of I1 ₂ through M1 ₂-M2 ₂ mirror W/L ratios. Such decoupling of current reference network scaling, reduces FET's sizes and lowers the capacitance associated with the small scaled FETs which also improves the iDAC's transient response and lowers glitch.

Note that the floating iDAC disclosed in FIG. 2 generally utilizes NMOSFETs, including for iSWs and for the floating current source transfer function network. Variations of this disclosure would be obvious to one skilled in the art, including to utilize a complementary floating iDAC comprising of NMOS current reference sources and PMOS iSWs, or combination thereof.

In summary, some of the benefits of the floating iDAC method disclosed in section 1 FIG. 1, and such benefits flowing into the embodiment of the floating iDAC of FIG. 2, which are as follows:

First, the floating VCCSs generate the scaled current reference network for the iDAC, that can be decoupled from the scaling of I_(M1) ₂ , I_(M2) ₂ mirror and I1 ₂ reference current. The decoupling of scaling of current reference network provides a degree of freedom that helps the iDAC reduce FET scaling and sizes which saves die are, lowers cost, and also lowers the capacitance attributed to larger size FETs in the iDAC's current reference network which in turn improve the transient response of the iDAC.

The decoupling of scaling of current reference network, also provides simple means to improve the dynamic response of the iDAC when its reference input signal I1 ₂ is pulsed between zero and full scales. This is accomplished by injecting currents b×I2 ₂=a×I3 ₂ to both side of M1 ₂-M2 ₂ current mirror to prevent the mirror from shutting off, and hence improving its dynamic response.

Second, the iDAC operating in current-mode is inherently fast.

Third, voltage swings in current-mode signal processing are small, which enables operating the iDAC with lower power supply voltage and retain the speed and dynamic rage benefits. Also, floating iDAC can operate with low power supplies since its operating headroom can be limited by a FET's VGS+VDS. Additionally, the flexibility to run the CMOSFETs in subthreshold enables a floating iDAC to operate with ultra-low currents, even lower power supplies, and ultra-low power consumption suitable for mobile applications, especially in AI and ML applications that may require numerous ultra-low power and low power supply DACs for computation.

Fourth, operating at low supply voltage reduces power consumption.

Fifth, signal processing such as addition or subtraction, in current mode, are also small and fast.

Sixth, the VCCS's gain factor can be programmed for an objective iDAC's transfer function such as binary weighted, thermometer, logarithmic, square function, or other non-linear iDAC transfer functions, as required by the application.

Seventh, by substantially equalizing the terminal voltages at Io₂ ⁺ and Io₂ ⁻ (e.g., to V1 ₂), the iSW's transient and glitch responses are improved since the two outputs of iSW at Io₂ ⁺ and Io₂ ⁻, could swing between approximately equal voltages, during on and off iDAC's digital input code transitions.

Eight, there are no passive devices in the embodiment of FIG. 2, and as such there is no need for resistors or capacitors, which reduces die size and manufacturing cost. Not requiring any capacitors nor any resistors would facilitates fabricating a floating iDAC in standard digital CMOS manufacturing that is not only low cost, but also main-stream and readily available for high-volume mass production applications, and proven for being rugged and having high quality.

Ninth, the precision of the iDAC can be improved by for example utilizing current source segmentation (along with digital binary-to-thermometer logic decoding of iDAC's digital input code), or cascading the iDAC's reference current mirrors to improve their output impedance.

Tenth, a floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Eleventh, a floating iDAC can utilize same type of MOSFET current sources and MOSFET switches that are arranged in a symmetric, matched, and scaled manner. This trait facilitates devices parameters to track each other over process, temperature, operating condition variations. Accordingly, the iDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Twelfth, the embodiment disclosed here is not restricted by FETs having to operate either in saturation (high-currents) or subthreshold (low currents) regions. For example, some analog signal processing units rely on operating transistors in the subthreshold regions which restricts the dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing units rely on operating transistors with high currents in the saturation regions which restricts the dynamic range of analog signal processing circuits to higher current signals.

Section 3—Description of FIG. 3

FIG. 3 is a simplified circuit schematic diagram illustrating an embodiment of an iDAC that combines a plurality of iDACs to arrange a higher resolution iDAC, wherein at least one of the plurality of iDACs utilizes the floating iDAC method illustrated in FIG. 1.

The individual floating iDACs utilized in FIG. 3 are arranged in a similar manner as that of FIG. 2 in section 2. FIG. 3 illustrates a 5-bit iDAC but higher resolutions iDACs can be arranged and up to 16-bits of resolution is practical. The iDAC of FIG. 3 is comprising of a first 2-bits floating iDAC that is a most-significant bank (MS bank iDAC) and a second 3-bits floating iDAC that is a least-significant bank (LS bank iDAC). Here, the full-scale output current weight of the MS bank iDAC is 2²=4 times bigger than that of the LS bank iDAC. The MSB of the 5-bit iDAC is D5 ₃ and the LSB of the 5-bit iDAC is D1 ₃. The 5-bit iDAC's reference current in FIG. 3 is I1 ₃ and the iDAC's output currents are Io₃ ⁺ and Io₃ ⁻.

The upper half of FIG. 3 (that is outside the Block 3A dotted area) is the LS bank iDAC (with D1 ₃, D2 ₃, and D3 ₃ as its respective digital inputs) that is similar to that of FIG. 2 described in section 2. The lower half of FIG. 3 that is inside the Block 3A dotted area is a 2-bit floating iDAC which is the MS bank iDAC (with D4 ₃, and D5 ₃ as its respective digital input bits) generating a positive and a negative output currents Im₃ ⁺ and Im₃ ⁻ (respectively) that are added to (coupled with) the iDAC's output currents to produce the total Io₃ ⁺ and Io₃ ⁻.

To optimize for cost-performance objective, the embodiment illustrated in FIG. 3 has the flexibility to program the reference current value and iDAC's input-to-output transfer function. For descriptive clarity of the operations of FIG. 3, let's program the 5-bit iDAC as binary weighted (instead of a non-linear or thermometer input-out transfer function for the iDAC, for example). As an example, with the reference current I1 ₃=8I_(R), let's program the reference current mirror scale factors in the iDAC's transfer function network as follow: M13 ₃'s c=3, M2 ₃'s b=1, and M1 ₃'s a=1. Also, let's program s₆=2×s₅ and analogous to the example in section 2 (pertaining to FIG. 2) s₃=2×s₂=4×s₁. Notice that, I_(M14) ₃ and I_(M15) ₃ can be viewed as floating current sources on I_(M13) ₃ . Similarly, I_(M4) ₃ , I_(M5) ₃ , I_(M6) ₃ , and I_(M20) ₃ can be viewed as floating current sources on I_(M2) ₃ . With scale factors programmed as noted above, a binary weighted current reference network can be arranged as follows: I_(M13) ₃ =24I_(R)→I_(M14) ₃ =16I_(R), I_(M15) ₃ =8I_(R) for the MS bank iDAC. Also, I_(M1) ₃ =I_(M2) ₃ =8I_(R)→I_(M4) ₃ =4I_(R), I_(M5) ₃ =2I_(R), and I_(M6) ₃ =I_(R) for the LS bank iDAC. Consider that with I_(M2) ₃ =8I_(R) and M20 ₃'s S₁=1, then I_(M20) ₃ =I_(R) which leaves 7I_(R) to be split in accordance with programmed scaled factors s₃=2×s₂=4×s₁ between I_(M4) ₃ =4I_(R), I_(M5) ₃ =2I_(R), and I_(M6) ₃ =I_(R).

Additionally, bear in mind that I_(M20) ₃ I_(R) is terminated in Io₃ ⁻ in this example, but I_(M20) ₃ can be terminated in Io₃ ⁺ depending on zero-scale or full scale (LSB current) offset requirement of the end-application. Moreover, note that the same voltage source V2 ₃ biases the gate terminals of M14 ₃, M15 ₃, and M20 ₃. As means for improving the transient recovery time of M1 ₃, if and when I1 ₃=8I_(R) is pulsed between zero and full scale, a proportional constant current (Ij₃ which is not shown but) can be added onto I1 ₃, to keep M1 ₃ alive, plus two scaled Ij₃ can be injected into nodes ng₃ and ng_(3′). Also consider that similar to FIG. 2 in section 2, the purpose of utilizing V1 ₃ in FIG. 3 is to substantially equalize the Io₃ ⁺ and Io₃ ⁻ terminal voltages for better matching and dynamic response (e.g., if Io₃ ⁺ is terminated into a diode connected current mirror, then V_(GS) of a diode connected FET can also be utilized to set the V1 ₃ for Io₃ ⁻).

Notice that the floating iDAC disclosed in FIG. 3 generally utilizes NMOSFETs, including for iSWs and the floating current source transfer function network. It would be obvious to one skilled in the art to utilize a complementary floating iDAC comprising of PMOS or a combination of PMOS and NMOS current reference transfer function and PMOS iSWs.

In addition to some of the benefits of the floating iDAC method disclosed in section 2 FIG. 2, the embodiment of FIG. 3 illustrates that the floating iADC method is scalable and can be expanded in combination with other iDACs to attain higher resolutions.

Section 4—Description of FIG. 4

FIG. 4 is a simplified circuit schematic diagram illustrating another embodiment of an iDAC that combines a plurality of iDACs to arrange a higher resolution iDAC, wherein at least one of the plurality of iDACs utilizes the floating iDAC method illustrated in FIG. 1.

The iDAC illustrated in FIG. 4 is similar to the iDAC described in FIG. 3 section 3 with the difference being the MS bank iDAC is not a floating iDAC. FIG. 4 illustrates a 5-bit iDAC but higher resolutions iDACs can be arranged and up to 16-bits of resolution is practical. The iDAC of FIG. 4 is comprising of a first 2-bits iDAC that is a most significant bank (MS bank iDAC shown inside the dotted line as Block 4A). The iDAC of FIG. 4 is also comprising of a second 3-bits floating iDAC that is a least significant bank (LS bank iDAC). In iDAC of FIG. 4 the full-scale output current weight of the MS bank iDAC is 2²=4 times bigger than that of the LS bank iDAC. The MSB of the 5-bit iDAC in FIG. 4 is D5 ₄ and the LSB of the 5-bit iDAC is D1 ₄. The 5-bit iDAC's reference current in FIG. 4 is I1 ₄ and the iDAC's output currents are Io₄ ⁺ and Io₄ ⁻.

The upper half of FIG. 4 (that is outside the Block 4A dotted area) is the LS bank iDAC (with D1 ₄, D2 ₄, and D3 ₄ as its respective digital inputs) similar to that of FIG. 2 and FIG. 3 that were described in sections 2 and 3, respectively. As noted earlier, the lower half of FIG. 4 that is inside the Block 4A dotted area is another 2-bit floating iDAC which is the MS bank iDAC (with D4 ₄, and D5 ₄ as its respective digital inputs) generating a positive and a negative output currents Im₄ ⁺ and Im₄ ⁻ (respectively) which are added to (by being coupled with) the first iDAC's output currents Io₄ ⁺ and Io₄ ⁻.

To optimize for cost-performance objective, there is flexibility in programming the iDAC's reference current value and input-output transfer function network of the iDAC in FIG. 4. To describe the operations of FIG. 4, let's program the 5-bit iDAC as binary weighted for the purpose of the disclosure's descriptive clarity. As an example, with the reference current I1 ₄=8I_(R), let's program the reference current mirror W/L scales as follow: M1 ₃₄'s c=2, M20 ₄'s d=1, M2 ₄'s b=1, and M1 ₄'s a=1. Let's program S₃=2×S₂=4×S₁ in FIG. 4. With W/L scales programmed as such, a binary weighted current reference network is arranged comprising of I_(M13) ₄ =16I_(R), I_(M20) ₄ =8I_(R) for the MS bank iDAC. As noted earlier, I_(M4) ₄ , I_(M5) ₄ , I_(M6) ₄ , and I_(M21) ₄ current sources can be viewed as floating on I_(M2) ₄ . Also, I_(M1) ₄ =I_(M2) ₄ =8I_(R)→I_(M4) ₄ =4I_(R), I_(M5) ₄ =2I_(R), and I_(M6) ₄ =I_(R) for the LS bank iDAC in FIG. 4. Given that I_(M2) ₄ =8I_(R) and M21 ₄'s S₁=1, then I_(M21) ₄ =I_(R) which leaves 7I_(R) to be split in accordance with programmed scaled factors S₃=2×S₂=4×S₁ between I_(M4) _(4=I) _(R), I_(M5) ₄ =2I_(R), and I_(M6) ₄ =I_(R).

Additionally, consider that in FIG. 4, I_(M21) ₄ =I_(R) is terminated in Io₄ ⁻ in this example, but I_(M21) ₄ can be terminated in Io₄ ⁺ depending on zero-scale or full scale (LSB current) offset requirement of the application. Moreover, consider that the same voltage source V2 ₄ biases the gate terminals of M14 ₄, M15 ₄, and M20 ₄. As means for improving the transient recovery time of M1 ₄, when I1 ₄=8I_(R) is pulsed between full and zero scales, a proportional constant injection DC current (Ij₄ which is not shown but) can be added onto I1 ₄, to keep M1 ₄ alive, plus two scaled Ij₄ can be injected into nodes ng₄ and the drain terminals of FETs M1 ₃₄ and M20 ₄. Also bear in mind that similar to FIG. 2 in section 2, the purpose of utilizing V1 ₄ in FIG. 4 is to substantially equalize the Io₄ ⁺ and Io₄ ⁻ terminal voltages for better matching and dynamic response (e.g., if Io₄ ⁺ is terminated into a diode connected current mirror, then V_(GS) of a diode connected FET can also be utilized as the V1 ₄ for Io₄ ⁻).

In addition to some of the benefits of the floating iDAC method disclosed in section 2 FIG. 2, the embodiment of FIG. 4 illustrates that the floating iADC method is scalable and can be expanded through combination with other iDACs to attain higher resolutions.

Section 5—Description of FIG. 5

FIG. 5 is a simplified schematic diagram illustrating a mixed-signal current-mode digital-input to analog-current-output multiplier (XD_(i)I_(o)) comprising of a first iDAC whose output supplies the reference input to a second iDAC, wherein the first and second iDACs utilize the floating iDAC method illustrated in FIG. 1

The first and second floating iDACs embodiments are similar to the floating iDAC described and illustrated in section 2 FIG. 2.

For clarity of description, both floating iDACs of FIG. 5 are arranged as binary-weighted, and accordingly the current reference transfer-function is programmed for FET W/L scales s₃=2×s₂=4×s₁.

For illustrative clarity, instead of showing iSWs with FET level circuit schematics (e.g., FIG. 2 section 2 where MSB current switch comprising M7 ₂, U1 ₂, and M8 ₂ etc.), the iSWs in FIG. 5 are shown as block diagrams (e.g., MSB current switch S1 ₅, etc.) utilized in floating iDACs. Additionally, bear in mind that the XD_(i)I_(o) illustrates a 3-bit digital input word Q being multiplied with a 3-bit digital word P, but each P and Q digital input words can be up to 16-bits.

The left side of FIG. 5 illustrates the first floating iDAC (Q-iDAC) with its Q_(D) digital-input word (comprising of 3-bits Q1 ₅, Q2 ₅, and Q3 ₅ where Q1 ₅ is the MSB and Q3 ₅ is the LSB), and its reference input current I_(R)=I1 ₅. The I1 ₅ is fed onto a diode connected FET M1 ₅ whose current is scaled and mirrored onto M2 ₅ in accordance with the programmed W/L scales a and b of M1 ₅ and M2 ₅, respectively. For clarity of this description, let's set a=b=1, and thus I_(R)=I1 ₅=I_(M1) ₅ =I_(M2) ₅ .

The Q-iDAC's positive and negative analog output currents Iq₅ ⁺ and Iq₅ ⁻ are generated as a function of its Q digital-input word and I1 ₅. The digital-input to analog-current-output transfer-function of the Q-iDAC, which is binary weighted in FIG. 5's illustration, can mathematically be expressed as

${Iq}_{5}^{+} = {{\left( {I_{R}/2^{n}} \right) \times {\sum\limits_{i = 1}^{n}{Q_{i_{5}} \times 2^{i - 1}}}} = {\Delta_{R} \times {\sum\limits_{i = 1}^{n}{Q_{i_{5}} \times {2^{i - 1}.}}}}}$ Here, for a=b=1, Iq₅ ⁺=I_(M8) ₅ =I_(M9) ₅ is the analog-output current of the Q-floating iDAC. Also, Δ_(R)=I_(R)/2^(n)) with I_(R)=I1 ₅, and n=3 is the resolution of the Q-floating iDAC. Lastly, Q_(i) ₅ is 0 or 1 representing the value of the i^(th) digital input bits (with 3-bits Q1 ₅, Q2 ₅, and Q3 ₅) of the Q-floating iDAC. Let's simplify the Q-floating transfer function representation as Iq₅ ⁺=I1 ₅×f(Q_(D)). Consider that the Iq₅ ⁺ is fed onto a diode-connected FET M8 ₅ whose current is scaled and mirrored onto M9 ₅ to supply the reference current signal for the P-iDAC.

The right side of FIG. 5 illustrates the P-iDAC with its P_(D) digital-input word (comprising 3-bits P1 ₅, P2 ₅, and P3 ₅ where P1 ₅ is the MSB and P3 ₅ is the LSB) and its reference input current I_(M8) ₅ =Iq₅ ⁺=I1 ₅×f(Q_(D))=I_(M9) ₅ considering the programmed W/L scales arrangement where a=b=1. Consider that in FIG. 5's illustration, the iSWs in P-iDACs are PMOSFETs whereas the iSWs in Q-iDACs are NMOSFETs. Accordingly, the Q_(D) and P_(D) digital-input words are properly arranged to apply the complementary digital-input signs to the FIG. 5's iSWs.

The P-iDAC's positive and negative analog output currents Ipq₅ ⁺ and Ipq₅ ⁻ are generated as a function of its P-digital-word and I_(M9) ₅ . The digital-input to current analog-output transfer-function of the P-iDAC (that is binary weighted in the illustration of FIG. 5) can also mathematically be expressed as:

${{Ip}q_{5}^{+}} = {{\left( {I_{R^{\prime}}/2^{m}} \right) \times {\sum\limits_{j = 1}^{m}{P_{j_{5}} \times 2^{j - 1}}}} = {{\Delta_{R^{\prime}} \times {\sum\limits_{j = 1}^{m}{P_{j_{5}} \times 2^{j - 1}}}} = {{I_{M9_{5}}/2^{m}} \times {\sum\limits_{j = 1}^{m}{P_{j_{5}} \times 2^{j - 1}}}}}}$ where Ipq₅ ⁺ is the positive analog output current of the P-iDAC, I_(M9) ₅ =I_(q) ₅ =I1 ₅×f(Q_(D)), and m=3 is the resolution of the P-iDAC and P_(j) ₅ is 0 or 1 representing the value of the j^(th) digital input bits (with 3-bits P1 ₅, P2 ₅, and P3 ₅) of the P-iDAC. Therefore, the P-iDAC transfer function can be represented in the simplified form: Ipq₅ ⁺=I1 ₅×f(Q_(D))×f(P_(D)) or f(Q_(D))×f(P_(D))=I_(pq) ₅ /I1 ₅ which is an expression that represents the multiplication results of two digital-input words Q_(D) and P_(D), where the multiplication result is represented as an analog-output current I_(pq) ₅ proportional to a current proportional to I1 ₅ which is proportional to a reference current (I_(R)).

Bear in mind that the Ipq₅ ⁻ is fed onto a voltage source V2 ₅ to match terminal voltage at Ipq₅ ⁺. Furthermore, as means to enhance the dynamic response of reference mirror current signals that is subjected to a pulse, I2 ₅ is added as a constant current injection (Ij₅) to keep M8 ₅ alive when for example Iq₅ ⁺ transitions between zero and full scale. As such, a proportional I3 ₅ is added to M9 ₅ to balance the current mirror M8 ₅-M9 ₅.

In summary some of the benefits of the XD_(i)I_(o) utilizing the floating iDAC method are as follows:

First, the decoupling of scaling of current reference network, helps reduce FET sizes which saves die are, lowers cost. This trait also lowers the capacitance attributed to large size FETs in the iDAC's current reference network, which in turn improves the transient response of the floating iDAC and the multiplier XD_(i)I_(o) that utilizes such iDACs. The decoupling of scaling of current reference network, also provides simple means to improve the dynamic response of the iDAC and that of the multiplier XD_(i)I_(o) when the iDAC's reference input signal is pulsed. One mean of accomplishing this goal is by injecting a scaled DC current on each side of the current mirror that supplies the iDAC's reference current, which helps prevent the mirror from shutting off, and thus improving its dynamic response.

Second, the XD_(i)I_(o) operating in current-mode is inherently fast.

Third, voltage swings in current-mode signal processing are small, which enables operating the XD_(i)I_(o) with lower power supply voltage.

Fourth, operating at low supply voltage reduces power consumption of the XD_(i)I_(o). Additionally, the flexibility to run the CMOSFETs in subthreshold enables the iDAC to operate with ultra-low currents, even lower power supplies, and ultra-low power consumption suitable for mobile applications, especially in AI and ML applications that may require numerous ultra-low power and low power supply DACs for computation.

Fifth, XD_(i)I_(o)'s output signal processing in current-mode such as addition or subtraction functions are also small and fast, which for example is important in ML & AI applications requiring plurality of multiplier's outputs to be (summed) accumulated. For example, to sum plurality of signals in current-mode simply involves coupling the current signals together.

Sixth, by substantially equalizing the terminal voltages at the positive and negative current output of the iDAC, it would improve the iSW's transient response and reduces glitch between the iSW's on to off transitions, which helps the transient response of the XD_(i)I_(o).

Seventh, there are no passive devices in the embodiment of FIG. 5, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost of the XD_(i)I_(o).

Eighth, the precision of the iDAC and hence the precision of the XD_(i)I_(o) multiplier can be improved by for example utilizing current source segmentation (along with digital binary-to-thermometer coding) in the iDAC's reference current transfer-function, or cascading the iDAC's reference current mirrors to improve their output impedance.

Ninth, utilizing lower resolution iDACs (e.g., 3-bits or 5-bits) in the XD_(i)I_(o) multiplier, that occupy smaller areas, but have higher accuracy (e.g., 8-bits of resolution corresponding to accuracy of ±0.4%) is beneficial. For example, higher than 3 of 5 bits of accuracy is attainable in standard CMOS fabrication. With proper W/L scaling of FETs used in the current source transfer function of iDACs, 8-bits of accuracy or ±0.4% matching may be achievable. As such, this disclosure can utilize low resolution iDACs that occupy small areas and achieve higher accuracy P_(A)×Q_(A) multiplication at lower cost.

Tenth, the XD_(i)I_(o) that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Eleventh, the XD_(i)I_(o) that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating iDACs, which are symmetric, matched, and scaled. This trait facilitates devices parameters to track each other over process, temperature, and operating conditions variations. Accordingly, the XD_(i)I_(o)'s temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Twelfth, the embodiment disclosed here is not restricted by FETs having to operate either in saturation (high-currents) or subthreshold (low currents) regions. For example, some analog signal processing units rely on operating transistors in the subthreshold regions which restricts the dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing units rely on operating transistors with high currents in the saturation regions which restricts the dynamic range of analog signal processing circuits to higher current signals

Section 6—Description of FIG. 6

FIG. 6 is a simplified circuit schematic diagram illustrating another embodiment of an iDAC that utilizes the floating iDAC method illustrated in FIG. 1.

The embodiment of floating iDAC illustrated in FIG. 6 is similar to that of the floating iDAC embodiment disclosed and illustrated in section 2 and FIG. 2. The difference is a smaller iSW arrangement which simplifies the iDAC, reduces its size, and lowers its dynamic power consumption. Small size of iDAC is critical in machine learning and artificial intelligence applications that could require numerous iDACs for multiplication purposes. The iSW here is, for example, comprising of M8 ₆ and M7 ₆, where in M8 ₆ receives the digital bit D3 ₆ whereas M7 ₆'s gate terminal is biased at a fixed V1 ₆+V3 ₆. As such, the inverter (compared to, for example, U1 ₂ in FIG. 2. Section 2) is eliminated which saves are and lowers transient power consumption when digital-inputs are updated. Note that, in this example, V1 ₆+V3 ₆ can be programmed such that digital voltage swings at D3 ₆ terminal properly turn M8 ₆ on and off when D3 ₆ bit toggles. Also, depending on cost-performance goals, M13 ₆, M3 ₆, and M1 ₆ as well as the iSW's FET pairs (e.g., M7 ₆-M8 ₆, M9 ₆-M10 ₆, and M11 ₆-M12 ₆) can be sized to optimize for FETs to operate at or near saturation with increased output impedance, which could improve performance of the current reference transfer function network.

In addition to some of the benefits of the floating iDAC method disclosed in section 2 FIG. 2, the embodiment of FIG. 6 illustrates another embodiment of floating iDAC with smaller size and lower dynamic power consumption.

Section 7—Description of FIG. 7

FIG. 7 is a simplified functional block diagram illustrating a factorized iDAC method.

As noted earlier, a DAC's input-to-output transfer function can be described as follow:

${A_{o} = {\left( {A_{r}/2^{i}} \right) \times {\sum\limits_{i = 1}^{n}\left\lbrack {D_{i} \times 2^{i - 1}} \right\rbrack}}},$ where A_(o) is the DAC's analog output signal, A_(r) is the DAC's analog reference signal, D_(i) is the DAC's digital inputs signal that are n-bits wide. For example, for n=6, and A_(r)=1 units which establishes A_(o)'s full scale value of 1 unit. For a ½ unit or half-scale of a 6-bit wide digital word corresponds to D_(i)=100000 or D₆=1, and D₅=D₄=D₃=D₂=D₁=0, the DAC's input-to-output transfer function would be as follows: A_(o)=(A_(r)/2⁶)×[D₁×2⁰+D₂×2¹+D₃×2²+D₄×2³+D₅×2⁴+D₆×2]=(A_(r)/2⁶)×[0×2⁰+0×2¹+0×2²+0×2³+0×2⁴+1×2⁵]=(A_(r)/2⁶)×[1×2⁵]=A_(r)/2=½ full-scale.

Notice that the term (A_(r)/2⁶) carries the analog equivalent weight of a least significant bit (LSB) or A_(LSB), which is binarily weighted (up to 2^(i−1) with 1<i<n=6 where i is an integer) to generate the DAC's A_(o) (that is proportional to the DAC's A_(r) and) in accordance with the DAC's DL. Here, let 2^(i−1)=2^(j)×2^(k)=w_(i)×f_(i) where w_(i) and f_(i) represent the factors of 2^(i−1), and where there can be found a pair of w_(i) and f_(i) factors whose sum is the smallest compared to w_(i)×f_(i). In other words, there can be found a pair of w_(i) and f_(i) where w_(i)+f_(i) w_(i)×f_(i). For example, for n=i=6→2^(i−1)=2⁵=32=2^(j)×2^(k)=2₃×2²=w₆×f₆=16×2=8×4 where the sum of the pairs of factors here are the smallest compared to the multiplication of the pairs of factors (e.g., with j=2, k=3 or w₆=8 and f₆=4 for which 4+8<<8×4).

The factorized DAC method factorizes a respective binary DAC weights, which reduces the DAC's area and cost. The respective binary DAC weights (2^(i−1)) can be generated by feeding the respective binary DAC weight's factor (2^(j)=w_(i)) into its other factor (2^(k)=f_(i)) wherein 2^(i−1)=2^(j)×2^(k)=w_(i)×f_(i). Utilizing the factorized DAC method, the circuit area occupied by the respective binary DAC weight's factors (2^(j)=w_(i) and 2^(k)=f_(i) in aggregate) can be optimized to occupy a smaller area compared to that of the conventional respective binary DAC weights (2^(i−1)).

For example, a standard 6-bit iDAC is comprised of a plurality of binary scaled switching current source (cells) where each current source cell carries a current weight of A_(r)/2⁶ which is a Least-Significant-Bit or LSB. The current source cells are binarily and respectively scaled in parallel to arrange the standard iDAC's binary weighted current switching reference network. For example, the standard iDAC's Most-Significant-Bit (MSB) analog current portion is generated by placing in parallel 32 of LSB current source cells (A_(r)/2⁶) which generates 32×A_(r)/2⁶=A_(r)/2. Accordingly, the MSB of a 6-bit standard iDAC's switching current sources would occupy the size of 2^(i−1)=2⁵=32 of LSB switching current source cells that are arranged in parallel.

In comparison, the disclosed factorized iDAC method generates the same 32×A_(r)/2⁶=A_(r)/2 or the MSB analog current portion with more area efficiently. The factorized iDAC method, feeds the output current of 2^(j)=23=w₆=8 parallel LSB current switches (where each current switch carries a current with the weight of an A_(LSB)) onto a current mirror with a gain of 2^(k)=2²=f₆=4. The current mirrors can be arranged to have the same size as the factorized iDAC's LSB current source cells for matching purposes. As such, for the factorized iDAC method, the MSB analog current portion of 32×A_(r)/2⁶=A_(r)/2, while occupying an equivalent aggregate current switch area of 2^(j)+2^(k)=2³+2²=8+4=12 LSB current source cells. In comparison, and as noted earlier, an equivalent aggregate current source cell 25=32 LSB current cells would be required for a standard iDAC.

Note that there is a trade-off between reducing the area achieved by utilizing the factorized DAC method, and reducing the accuracy of the DAC. For example, the mismatch attributed to current source cells that constitute w₆ (subordinate DAC weight) are multiplied with the mismatch attributed to the current source cells that constitute f₆.(factorized scale), which lowers the accuracy of the overall DAC while reducing its size.

The area reduction benefit of the factorized DAC method can be extended for high resolution DACs comprising of plurality of factorized DACs. For example, a 6-bit DAC can be arranged by utilizing two factorized DACs (e.g., a 3-bit factorized Most-Significant-Portion of MPS DAC, and a 3-bit factorized Least-Significant-Portion or LSP DAC). Alternatively, a 6-bit DAC can be arranged by utilizing three factorized DACs (e.g., a 2-bit factorized top portion DAC, a 2-bit factorized middle portion DAC, and a 2-bit factorized bottom portion DAC).

As noted, earlier FIG. 7 is a functional block diagram illustrating a DAC comprising of three factorized DACs, but the same factorized method is applicable for example to 2 or 4 (instead of 3) factorized DACs.

In FIG. 7, the digital inputs Di₇ that is i₇-bit wide is applied to a logic block L₇ that arranges the digital input bits to three segments: First, a t₇-bit wide top-portion-bits or Dt₇ word. Second, a m₇-bit wide middle-portion-bits or Dm₇ word. And third, a b₇-bit wide bottom-portion-bits or Db₇ word.

In FIG. 7's illustration of factorized DAC method, the digital input words Dt₇, Dm₇, and Db₇ are fed onto three binary weighted subordinated factorized DACs: a top-DAC (DACt₇), a middle-DAC (DACm₇), and a bottom-DAC (DACb₇), respectively. The three respective top, middle, and bottom DACs receive a top-analog-reference signal (tr₇), a middle-analog-reference signal (mr₇), and a bottom-analog-reference signal (br₇), respectively. Accordingly, the three respective top, middle, and bottom subordinated factorized DACs generate a top-weight analog output signal (At₇), a middle-weight analog output signal (Am₇), and a bottom-weight analog output signal (Ab7), respectively. The At₇, Am₇, and Ab₇ are then gained up by top-factor scale (Ft₇), a middle-factor scale (Fm₇), and a bottom-factor scale (Fb₇) whose respective output products At₇×Ft₇, Am₇×Fm₇, and Ab₇×Fb₇ are summed by an analog block A₇ to generate a final factorized DAC analog output signal, Ao₇. The three full-scale weights of At₇, Am₇, and Ab₇ can be programmed as a function of the ratio of the three reference analog signals tr₇, mr₇, and br₇. Programming the middle-factor scale Fm₇=1 as the base-factor, then Ft₇=2^(t) ⁷ /(tr₇/mr₇) relative to the base-factor, and Fb₇=(½^(m) ⁷ )×(mr₇/br₇) relative to the base-factor.

Consider that for practical purposes (without any DAC calibration or trimming): The three digital bits t₇, m₇, and b₇ can be more than 1-bit and less than 8-bit wide. The three factor scales Ft₇, Fm₇, and Fb₇ can be programmed to gains than zero and less than 16 (without calibration or trimming): The ratio of analog reference signals tr₇/mr₇ and mr₇/br₇ can be programmed to ratios more than zero and less than 16 (without calibration or trimming).

For example, let's arrange the three subordinated factorized DAC's digital-bits t₇=m₇=b₇=2 bits each. Let's also program the three subordinated factorized DAC's reference analog signals substantially equally as tr₇=mr₇=br₇=1w. Accordingly, the three factor scales are programmed according to: Ft₇=2^(t) ⁷ /(tr₇/mr₇)=2²/(1)=4 and Fb₇=(½^(m) ⁷ )×(mr₇/br₇)=(½²)×(1)=¼. Again, notice that the three full-scale weights of At₇, Am₇, and Ab₇ are programmed as a function of the ratio of the three reference analog signals tr₇, mr₇, and br₇.

In an alternative example, arranging the three subordinated factorized DAC's digital-bits t₇=m₇=b₇=2 bits each, and programming the three subordinated factorized DAC's reference analog signals as tr₇=4w, mr₇=2w, and br₇=1w, then the three factors are programmed according to: Ft₇=2^(t) ⁷ /(tr₇/mr₇)=2²/(4w/2w)=2 and Fb₇=(½^(m) ⁷ )×(mr₇/br₇)=(½²)×(2w/1w)=2.

It is of note that for a standard binary 6-bit DAC, a scale factor of 2⁶⁻¹⁼ 32 LSB weights (32x) are needed to generate just the MSB signal as a multiple of the LSB weight. In comparison, for a 6-bit factorized DAC that is described in the above 2 examples, the largest scale factor is 4x to generate any bit, including the MSB. In the above 2 example, the largest scale factor is 4x in the three subordinate factorized DACs (At₇, Am₇, and Ab₇ whose full-scale outputs are programmed with tr₇/mr₇ and mr₇/br₇ ratios) as well as in the factor blocks Ft₇, Fm₇, and Fb₇. Accordingly, smaller scale factors result in smaller DAC area and as well as other benefits such as improved dynamic response, which will be described further in the following DAC circuit embodiments that utilize the factorized DAC method.

Section 8—Description of FIG. 8

FIG. 8 is a simplified circuit schematic diagram illustrating an embodiment of an iDAC that utilizes the factorized iDAC method described and illustrated in section 7 FIG. 7.

In FIG. 8, the illustrated factorized iDAC is comprising of three subordinated factorized iDAC blocks DACt₈, DACm₈, and DACb₈ which are analogous to DACt₇, DACm₇, and DACb₇ of FIG. 7. Moreover, in FIG. 8, the three factor blocks Ft₈, Fm₈, and Fb₈ are analogous to Ft₇, Fm₇, and Fb₇ of FIG. 7. As noted earlier, the embodiment of the factorized DAC method is illustrated with combining three subordinated factorized iDACs (and their respective factor blocks) in FIG. 8. However, the factorized method is flexible in utilizing, for example, two or four subordinated factorized iDACs (and their respective factor blocks), depending on the end-application's feature-benefit-cost requirements.

In FIG. 8, the factorized iDAC's reference current source I1 ₈ sets the gate-to-source voltage of M7 ₈ which is scaled and mirrored onto M1 ₈-M2 ₈, M3 ₈-M4 ₈, and M5 ₈-M6 ₈ which are a binary weighted current source networks, belonging to the three subordinated factorized iDACs: DACt₈, DACm₈, and DACb₈, respectively. The digital word Di₇ in FIG. 7 is analogous FIG. 8's Di₈ digital word comprising of digital bits D6 ₈-D5 ₈-D4 ₈-D3 ₈-D2 ₈-D1 ₈. The digital words Dt₇, Dm₇, and Db₇ in FIG. 7 are analogous to digital words D6 ₈-D5 ₈, D4 ₈-D3 ₈, and D2 ₈-D1 ₈ of FIG. 8, respectively. Note that for clarity of illustration the factorized iDAC's resolution is arranged with 6-bit, but the resolution can be higher such as 16-bits. In FIG. 7, signals At₇, Am₇, and Ab7 are analogous to current signals designated as At₈, Am₈, and Ab₈ in FIG. 8, which are the current output signals of subordinated factorized iDAC blocks DACt₈, DACm₈, and DACb₈, respectively. In FIG. 7, designated signals Ft₇×At₇, Fm₇×Am₇, and Fb₇×Ab7 are analogous to current signals designated as Ft₈×At₈, Fm₈×Am₈, and Fb₈×Ab₈ in FIG. 8, which are the current output signals of factor blocks Ft₈, Fm₈, and Fb₈, respectively. In FIG. 8, current output signals of factor blocks Ft₈, Fm₈, and Fb₈ are coupled (summed) at node A₈. As such the factorized iDAC output current signal is A₈=Ft₈×At₈+Fm₈×Am₈+Fb₈×Ab₈.

Given that the three subordinated factorized iDACs (i.e., DACt₈, DACm₈, and DACb₈) in FIG. 8 are identical, only the subordinated factorized DACt₈'s operation is briefly described. Let the I1 ₈=w as the DACt₈'s reference analog current input signal, which is scaled and mirrored onto the subordinated factorized DACt₈'s current source network comprising of I_(N1) ₈ =2w and I_(N2) ₈ =1w. Consider that M1 ₈ and M2 ₈ are cascaded by M8 ₈ and M9 ₈ (biased with V1 ₈), respectively, to raise the current sources output impedance. The I_(N1) ₈ =I_(N8) ₈ =2w is coupled with a current switch comprising of M15 ₈ and M21 ₈. The M15 ₈ is biased at a fixed voltage V2 ₈+V1 ₈ that can be biased at approximately (V_(DD)+V_(SS))/2, which would enable M15 ₈, M21 ₈ to switch I_(N8) ₈ =I_(N1) ₈ to two paths: When D6 ₈ is in the low (V_(SS)) states, I_(N1) ₈ flows through M15 ₈ (that is turned on) and onto M27 ₈. The aim of diode connected M27 ₈ is to substantially equalize the drain terminal voltage of M8 ₈ at roughly V_(DD)−V_(GSpmos), while D6 ₈ is toggled between high or low states, which improves the iDAC's dynamic response. Similarly, I_(N2) ₈ =I_(N9) ₈ =1w is coupled with a current switch comprising of M16 ₈ and M22 ₈. Also, M16 ₈ is biased at a fixed voltage V2 ₈+V1 ₈. When D5 ₈ is in the high states, the I_(N2) ₈ flows through M22 ₈ and again onto node At₈. When D5 ₈ is in the low states, the I_(N2) ₈ flows through M16 ₈ and onto the diode connected M27 ₈, which again substantially equalizes the drain terminal voltage of M8 ₈ at roughly V_(DD)−V_(GSpmos), when D5 ₈ is toggled between high or low states, which improves the iDAC's dynamic response. Notice that the full-scale current signal flowing through the node designated as At₈ is 2×I1 ₈+1×I1 ₈=3×I1 ₈=3w, which is the full-scale output current signal for subordinated factorized DACt₈.

Similarly, the current signals through nodes designated as Am₈ and Ab₈ (which are generated by the subordinated factorized DACm₈ and DACb₈, respectively) both have a full-scale current of 3w. Consider that tr₈, mr₈, and br₈ are the equivalent full-scale reference signal for the subordinated factorized DACt₈, DACm₈ and DACb₈, respectively, which are analogous to the terminology tr₇, mr₇, br₇ described in section 7, FIG. 7. Since the three subordinated factorized iDAC's reference analog signals (full-scale values) are arranged substantially equally (i.e., equivalent tr₈=mr₈=br₈=3w), then the three other factor scales are programmed according to: Fm₈=1 as base value, Ft₈=2^(t) ⁸ /(tr₈/mr₈)=2²/(1)=4 and Fb₈=(½^(m) ⁸ )×(mr₈/br₈)=(½²)×(1)=¼, taking into consideration that DACt₈ is a 2-bit DAC (t₈=2) and DACm₈ is a 2-bit DAC (m₈=2).

Accordingly, the full-scale value of the factorized iDAC which is A₈=Ft₈×At₈+Fm₈×Am₈+Fb₈×Ab₈=4×3w+1×3w+¼×3w=w×15¾. Given that I1 ₈=w, the full-scale value of A₈ can be adjusted in accordance with w×15¾ (from nano amperes to milliamperes scales) depending on the applications requirements.

As noted earlier, the accuracy of the factorized DAC is dominated by matching of components in the signal path of the most significant bits (MSB). As such, design and FET layout care can help the matching between M1 ₈-M2 ₈ in the subordinated factorized DACt₈ block and matching between M34 ₈-M35 ₈ in the Ft₈ block which arrange the factorized iDAC's MSB and dominate the accuracy of the overall factorized DAC. Moreover, subordinated factorized DACt₈ can be arranged in a segmented fashion (disclosed next in section 9, FIG. 9) to improve accuracy and reduce the glitch.

Also, it would obvious to one skilled in the art to further reduce the size and cost of FIG. 8's circuit by eliminating the cascoded FETs M28 ₈ to M33 ₈ as well as M8 ₈ to M14 ₈ in applications where low power supplies with low V_(DD) variations are available, and or low cost calibration (trimming) is available to adjust gain error and full-scale.

The benefits of factorized DAC, including that of factorized iDAC are summarized below:

First, factorized iDAC is smaller than standard iDACs, and here is how: A standard binary weighted iDAC's current source network (as part of the iDAC's input-to-output transfer function network) is comprising of scaled current sources as follows: the MSB current source sized at 2⁵x=32x scaled through (2⁴x=16x, 2³x=8x, 2²x=4x, 21x=2x) to the LSB current source cell sized at 2⁰x=1x, where x is an equivalent current source cell that carries an LSB current weight. As such, for a standard 6-bit iDAC, about 63x current sources are required.

In comparison (setting aside the cascoded FETs and current switches), a factorized iDAC illustrated in FIG. 8 would require: 2x+1x, 2x+1x, 2x+1x current source cells for the three subordinated factorized iDACs (DACt₈, DACm₈, and DACb₈) plus 4x+1x, 1x+1x, 1x+4x (equivalent size x current source cell) for the three current mirrors in factor blocks (Ft₈, Fm₈, and Fb₈). As such, for a 6-bit iDAC utilizing the factorized DAC method, 21x equivalent current source cells are required, which is about 3 times smaller than a conventional iDAC.

For higher resolution DACs, the factorized DAC method is even more area efficient.

Second, dynamic response is faster than conventional iDACs because factorized DACs smaller sized input-to-output transfer function network utilizes smaller FETs with smaller capacitances, which can be charged and discharged faster.

Third, glitch is lower during code transitions compared to standard DACs, again because factorized DACs smaller input-to-output transfer function network utilizes smaller devices that carry smaller capacitances, which inject fewer analog glitches to the output of the DAC during digital input code transitions.

Fourth, dynamic power consumption is lower because a factorized DAC's smaller sized FETs (in the input-to-output transfer function network) would consume less dynamic current to drive smaller devices during digital input code transitions.

Fifth, utilizing the factorized DAC method in a current-mode DAC (iDAC) is inherently fast.

Sixth, factorized iDAC can operate with low power supply since its operating headroom can be limited by a FET's VGS+VDS.

Seventh, utilizing the factorized iDACs in subthreshold region can further reduce power consumption and lower power supply voltage.

Eight, factorized iDAC can be programmed for a non-linear (e.g., logarithmic or square) input-to-output transfer function.

Ninth, running the CMOSFETs in subthreshold enables the factorized iDAC to operate with ultra-low currents, low power supply, and ultra-low power consumption suitable for mobile applications, especially in AI and ML applications that require numerous ultra-low power and low power supply DACs for computation.

Tenth, neither any capacitors nor any resistors are needed, which facilitates fabricating the factorized iDAC in standard digital CMOS manufacturing factory that is low cost, main-stream and readily available for high-volume mass production applications, and proven for being rugged and having high quality.

Eleventh, factorized iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Twelfth, factorized iDAC can utilize same type of MOSFET current sources and MOSFET switches that are symmetric, matched, and scaled. This trait facilitates devices parameters to track each other over process, temperature, and operating condition variations. Accordingly, the iDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Thirteenth, the embodiment disclosed here is not restricted by FETs having to operate either in saturation (high-currents) or subthreshold (low currents). For example, some analog signal processing units rely on operating transistors in the subthreshold regions which restricts the dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing units rely on operating transistors with high currents in the saturation regions which restricts the dynamic range of analog signal processing circuits to higher current signals.

Section 9—Description of FIG. 9

FIG. 9 is a simplified circuit schematic diagram illustrating another embodiment of an iDAC that combines the factorized and floating iDAC methods described in sections 7 and 1, and illustrated FIGS. 7 and 1, respectively.

The three subordinated iDACs in FIG. 9 utilize a combination of both the factorized DAC method and the floating iDAC methods. Also, the top subordinate DACt₉ utilizes floating iDAC method as well as segmentation to improve accuracy and reduce glitch associated with digital input code transitions.

In FIG. 9 illustration, the factorized floating iDAC is comprising of three factorized floating subordinated iDACs depicted in blocks DACt₉, DACm₉, and DACb₉ (which are analogous to DACt₈, DACm₈, and DACb₈ of FIG. 8). The factor blocks Ft₉, Fm₉, and Fb₉ are analogous to Ft₈, Fm₈, and Fb₈ of FIG. 8. Notice that the digital input word Di₈ comprising of the digital bits D6 ₈ to D1 ₈ in FIG. 8 are analogous to the factorized floating iDAC's digital input word Di₉ comprising of the digital bits D6 ₉ to D1 ₉ of FIG. 9, respectively. Again, bear in mind that for clarity of illustration the main factorized floating iDAC in FIG. 9 is arranged with 6-bit of resolution (comprising of the three 2-bit factorized floating subordinated iDACs: DACt₉, DACm₉, and DACb₉) but the factorized floating iDAC resolution can be higher, such as 16-bit. Also, it would be obvious to one skilled in the art that iDACs can be arranged with less than three factorized floating subordinated iDACs (e.g., two) or more than three (e.g., four or five).

The factorized floating iDAC's reference current source I1 ₉ sets the gate-to-source voltage of M4 ₉ which is scaled and mirrored onto M1 ₉, M2 ₉, and M3 ₉ which program the full-scale weights of the three factorized floating subordinated iDACs: DACt₉, DACm₉, and DACb₉, respectively. Also notice that signals At₈, Am₈, and Ab₈ in FIG. 8 are analogous to current signals designated as At₉, Am₉, and Ab₉ in FIG. 9 which are the current output signals of the three subordinated iDAC blocks DACt₉, DACm₉, and DACb₉, respectively. In FIG. 8, designated signals Ft₈×At₈, Fm₈×Am₈, and Fb₈×Ab₈ analogous to current signals designated as Ft₉×At₉, Fm₉×Am₉, and Fb₉×Ab₉ in FIG. 9, which are the current output signals of factor blocks Ft₉, Fm₉, and Fb₉, respectively. In FIG. 9, current output signals of factor blocks designated as Ft₉, Fm₉, and Fb₉ are coupled (summed) at node A₉. As such the factorized floating iDAC output current signal is A₉=Ft₉×At₉+Fm₉×Am₉+Fb₉×Ab₉.

As noted earlier, the three factorized floating subordinated iDACs in FIG. 9 utilize a combination of both the factorized DAC method (described in section 7, FIG. 7), and the floating iDAC method (described in section 1, FIG. 1). In FIG. 9, a central reference current I1 ₉=w flows through M4 ₉ that is sized at 1x, which programs I_(M49)=w that is mirrored and scaled onto: M1 ₉ sized at 4x with I_(M1) ₉ =4×w, M2 ₉ sized at 2x with I_(M1) ₉ =2×w, and M3 ₉ sized at 1x with I_(M1) ₉ =1×w. Consider that I_(M1) ₉ , I_(M2) ₉ , and I_(M3) ₉ are the reference analog signals tr₉=4w, mr₉=2w, and br₉=1w (analogous to the terminology tr₇, mr₇, br₇ described in section 7, FIG. 7) that are applied to the factorized floating subordinated DACt₉, DACm₉ and DACb₉, respectively, which also set the said three factorized floating subordinated iDAC's full-scale current output signals through nodes designated as At₉, Am₉ and Ab₉, respectively. As such, the three factor scales are programmed according to: For Fm₉=1 as base factor scale, Ft₉=2^(t) ⁹ /(tr₉/mr₉)=2²/(2)=2 and Fb₉=(½^(m) ⁹ )×(mr₉/br₉)=(½²)×(2)=½, also considering that DACt₉ is a 2-bit iDAC (t₉=2) and DACm₉ is a 2-bit iDAC (m₉=2).

Accordingly, the full-scale value of the factorized floating iDAC output is A₉=Ft₉×At₉+Fm₉×Am₉+Fb₉×Ab₉=2×4w+1×2w+½×1w=w×10½. Given that I1 ₉=w, the full-scale value of A₉ output signal can be adjusted (from nano amperes to milliamperes scales) depending on the applications requirements.

Notice that V1 ₉ biases the floating current sources M5 ₉ to M11 ₉. For applications where high-accuracy and higher iDAC output currents may be required, instead of one voltage source such as V1 ₉, up to three voltage sources can be utilized: such as one for each group of floating current sources M5 ₉ to M7 ₉, one for M4 ₉ to M5 ₉, and one for M10 ₉ to M12 ₉. In doing so, the V_(DS) or drain-to-source voltages of M1 ₉ to M4 ₉ would match which reduces scaled second order systematic error due V_(DS) mismatch between M1 ₉ to M4 ₉ currents. The current switches S1 ₉ to S7 ₉ (when in their off states) are terminated onto a diode connected M13 ₉ which is a VGS_(PMOS) below V_(DD) that roughly matches (to first order) the VGS_(PMOS) of diode connected M20 ₉, M22 ₉, and M24 ₉. As such, the transient and dynamic performance of the iDAC is improved since the drain terminal of FETs M5 ₉ to M11 ₉ are roughly balanced at V_(DD)−VGS_(PMOS) as the iDAC's codes toggle between on and off states.

Additionally, DACt₉ is arranged with segmentation to improve accuracy since DACt₉ carries the analog weight of the first 2 most significant bits. Here, D6 ₉ and D5 ₉ are fed to a 2-to-3 bit encoder (comprising of AND1 ₉ and OR1 ₉) whose digital outputs control the DACt₉'s current switches. As such, the DACt₉'s substantially equal current source segments (I_(M5) ₉ , I_(M6) ₉ , and I_(M7) ₉ ) are turned on-or-off one at a time (e.g., thermometer fashion), which improves accuracy and lowers the digital input code to analog output glitching. As noted earlier, the motivation for segmenting the MSB (as noted earlier) is that the accuracy of the factorized DAC is dominated by the MSB input-to-output transfer function network.

Excluding the cascoded current mirrors and current switches, the disclosed 6-bit iDAC in FIG. 9 occupies the equivalent area of about 24x current source cells, compared to that of a standard iDAC requiring about 63x current source cells, where x is an equivalent current source cell that carries an LSB current weight. In summary, some of the benefits of the factorized floating iDAC embodiment illustrated in FIG. 9 includes some of the benefits of the floating iDAC described in section 2, FIG. 2, in addition to some of the benefits of the factorized iDAC described in section 8, FIG. 8. Moreover, arranging the MSB factorized iDAC (DACt₉) in a segmented manner has the benefit of improved accuracy as well as lowering the iDAC's glitch.

Section 10—Description of FIG. 10

FIG. 10 is a simplified circuit schematic diagram illustrating another embodiment of another iDAC that utilizes the factorized and floating DAC methods described in sections 7 and 1, and illustrated FIGS. 7 and 1, respectively.

The two subordinated iDACs in FIG. 10 utilize a combination of both the factorized DAC method and the floating iDAC methods. The DACt₁₀, utilizes conventional 2-bit iDAC that is segmented for improve accuracy and lower glitch associated with the first 2 MSBs code transitions.

In FIG. 10, the illustrated factorized floating iDAC is comprising of two subordinated iDACs illustrated in blocks DACt₁₀ (subordinated segmented factorized iDAC) and DACb₁₀ (subordinated factorized floating iDAC) that operate in conjunction with the factor blocks Ft₁₀, and Fb₁₀. The iDAC's digital input word Di₁₀ comprising of the digital bits D1 ₁₀ to D6 ₁₀, respectively. Again, bear in mind that for clarity of illustration the overall factorized floating iDAC in FIG. 10 is arranged with 6-bit of resolution (comprising of DACt₁₀ that is a subordinated 2-bit segmented factorized iDACs, and the factorized floating 4-bit DACb₁₀) but overall resolution of the factorized floating iDAC can be higher, such as 16-bit.

In FIG. 10, signals At₁₀ and Ab₁₀ depict the current output signals of the two subordinated iDAC blocks DACt₁₀ and DACb₁₀, respectively. Current signals designated as At₁₀×Ft₁₀ and Ab₁₀×Fb₁₀ are the current output signals of factor blocks Ft₁₀ and Fb₁₀, respectively. In FIG. 10, current output signals of factor block Ft₁₀ and Fb₁₀ are coupled (summed) at node A₁₀. As such, in FIG. 10, the factorized floating iDAC output current signal is A₁₀=Ft₁₀×At₁₀+Fb₁₀×Ab₁₀.

The iDAC's reference current source in FIG. 10 is I1 ₁₀ which programs the gate-to-source voltage of M6 ₁₀ that is scaled and mirrored onto M1 ₁₀, M2 ₁₀, and M3 ₁₀, which together program the full-scale weights of DACt₁₀. Moreover, the gate-to-source voltage of M6 ₁₀ is mirrored onto M4 ₁₀, and M5 ₁₀, which together program the full-scale weight of DACb₁₀. Note that the drain current of M5 ₁₀ that is I_(M5) ₁₀ , supplies the floating current to the floating section of the DACb₁₀ comprising of M11 ₁₀, M12 ₁₀, M13 ₁₀, and M14 ₁₀, which are binary scaled at 4x, 2x, 1x, and 1x, respectively. Let's set I1 ₁₀=w, then I_(M4) ₁₀ =I_(M5) ₁₀ =I_(M6) ₁₀ =I1 ₁₀=I_(M1) ₁₀ =w, I_(M11) ₁₀ =w/2, I_(M12) ₁₀ /4=w/4, I_(M13) ₁₀ =w/8, and I_(M14) ₁₀ =w/8. Also, M1 ₁₀, M2 ₁₀, and M3 ₁₀ sized at 1x with I_(M1) ₁₀ =I_(M2) ₀₀ =I_(M3) ₁₀ =I_(M6) ₉ =1×w. Accordingly, the full scale value of At₁₀ which is the output current for DACt₁₀ is then 3w that also represents tr₁₀. The full scale value of Ab₁₀ which is the output current for DACb₁₀ is 2w that also represents brio. Since there are only a top iDAC (DACt₁₀) and a bottom iDAC (DACb₁₀), the programming of factor values are more straight forward: The LSB weight of DACt₁₀ is w and the LSB weight of DACb₁₀ is w/8, which makes their ratio=8. Considering that DACt₁₀ is a 2-bit iDAC (t₁₀=2), then 2^(t) ¹⁰ =4, which computes to 4/8=½ or Ft₁₀=1 and Fb₁₀=½ for current mirrors with the smallest FET ratio. Accordingly, the full-scale value of the factorized iDAC output A₁₀=Ft₁₀×At₁₀+Fb₁₀×Ab₁₀=1×3w+½×2w=w×4. Given that I1 ₁₀=w, the full-scale value of A₁₀ output signal can be adjusted (from nano-amperes to milli-amperes scales) depending on the applications requirements.

Notice that V1 ₁₀ and V2 ₁₀ bias the floating current sources M7 ₁₀ to M9 ₁₀ of DACt₁₀, and M10 ₁₀ to M14 ₁₀ of DACb₁₀, respectively. By having separate V1 ₁₀ and V2 ₁₀, the V_(DS) or drain-to-source voltages of M7 ₁₀ to M14 ₁₀ would match better which reduces (scaled) second order systematic error (due to drain-to-source or FET's V_(DS) mismatch) between M1 ₁₀ to M5 ₁₀ currents. Also, as stated in the prior section, the iDAC's current switches (iSWs) S1 ₁₀ to S7 ₁₀, in their off states, are terminated onto a diode connected M15 ₁₀ which is a VGS_(PMOS) (below V_(DD)) that roughly matches the VGS_(PMOS) of diode connected M20 ₁₀ and M22 ₁₀. As such, the transient and dynamic performance of the factorized floating iDAC is improved since the drain terminal of FETs M7 ₁₀ to M13 ₁₀ are roughly balanced at V_(DD)−VGS_(PMOS) as the iDAC's codes toggle between on and off states.

Additionally, DACt₁₀ is arranged with segmentation to improve accuracy. The two upper MSBs, D6 ₁₀ and D5 ₁₀ are fed to a 2-to-3 bit encoder (comprising of AND1 ₁₀ and OR1 ₁₀) whose digital output control the DACt₁₀'s switches. As such, the DACt₁₀'s substantially equal current source segments (I_(M1) ₁₀ , I_(M2) ₁₀ , and I_(M3) ₁₀ ) turn on-or-off one at a time (e.g., in a thermometer fashion), which improves accuracy and lowers digital input code to analog output glitching. As stated earlier, the motivation for segmenting the MSB (as noted earlier) is that the accuracy of the factorized DAC is dominated by the accuracy of the MSB signal path.

Excluding the cascoded current mirrors and current switches, the disclosed 6-bit iDAC in FIG. 10 occupies the equivalent area of about 18x current source cells, compared to that of a conventional iDAC requiring about 63x current source cells, where x is an equivalent current source cell that carries an LSB current weight. In summary, some of the benefits of the factorized floating iDAC embodiment illustrated in FIG. 10 includes some of the benefits of the floating iDAC described in section 2, FIG. 2, in addition to some of the benefits of the factorized iDAC described in section 8, FIG. 8. Moreover, arranging the MSB factorized iDAC (DACt₁₀) in a segmented manner has the benefit of improved accuracy as well as lowering the iDAC's glitch.

Section 11—Description of FIG. 11

FIG. 11 is a simplified circuit schematic diagram illustrating an embodiment of a mixed-signal current-mode digital-input to analog-output multiplier (XD_(i)I_(o)) comprising of a first iDAC whose output supplies the reference input to a second iDACs, wherein the first and second iDACs utilize the factorized and floating DAC methods illustrated FIG. 7, and FIG. 1 respectively. As noted earlier, a simplified transfer function for an iDAC is:

${I_{o} = {{I_{R}{\sum\limits_{i = 1}^{k}{D_{i}/2^{i}}}} = {{\left( {I_{R}/2^{k}} \right){\sum\limits_{i = 1}^{k}{D_{i} \times 2^{i - 1}}}} = {\Delta_{R}{\sum\limits_{i = 1}^{k}{D_{i} \times 2^{i - 1}}}}}}},$ where for the iDAC, I_(o) is the analog output current, I_(R) is the reference input current that can set the full-scale value of I_(o), D_(i) is the digital input word (that is k-bits wide), and Δ_(R)=(I_(R)/2^(k)) represents an analog LSB current weight for I_(o). For example, for a 6-bit iDAC, k=6, and full scale value of I_(o) set to substantially equal I_(R)=64nA, then LSB of the iDAC which is Δ_(R)=(I_(R)/2^(k))=Δ_(R)=(64nA/2⁶)=1nA.

A simplified transfer function of a multiplier XD_(i)I_(o) where a Y-iDAC's output supplies the reference input to a second X-iDAC is as follows: For the Y-iDAC

$I_{oy} = {{I_{Ry}{\sum\limits_{y = 1}^{m}{D_{y}/2^{y}}}} = {{\left( {I_{Ry}/2^{m}} \right) \times {\sum\limits_{y = 1}^{m}{D_{y} \times 2^{y - 1}}}} = {\Delta_{Ry} \times {\sum\limits_{y = 1}^{m}{D_{y} \times 2^{y - 1}}}}}}$ where the analog output current is I_(oy), the reference input current is I_(Ry) which can set the full-scale value of I_(oy), the digital input word (that is m-bits) wide is D_(y), and Δ_(Ry)=(I_(Ry)/2^(m)) represents an analog LSB current weight of I_(oy).

Similarly, for the X-iDAC

$I_{ox} = {{I_{Rx}{\sum\limits_{x = 1}^{n}{D_{x}/2^{x}}}} = {{\left( {I_{Rx}/2^{n}} \right) \times {\sum\limits_{x = 1}^{n}{D_{x} \times 2^{x - 1}}}} = {\Delta_{Rx} \times {\sum\limits_{x = 1}^{n}{D_{x} \times 2^{x - 1}}}}}}$ where the analog output current is I_(ox), the reference input current is I_(Rx) which can set the full-scale value of I_(ox), the digital input word (that is n-bits) wide is D_(x), and Δ_(Rx)=(I_(Rx)/2^(n)) is an analog LSB current weight of I_(ox).

By feeding the output current of Y-iDAC onto the reference input of the X-iDAC where

${I_{Rx} = {I_{oy} = {I_{Ry}{\sum\limits_{y = 1}^{m}{D_{y}/2^{y}}}}}},$ the following transfer function is realized:

$I_{ox} = {\left( {I_{Ry}{\sum\limits_{y = 1}^{m}{D_{y}/2^{y}}}} \right) \times {\left( {\sum\limits_{x = 1}^{n}{D_{x}/2^{x}}} \right).}}$ As such a digital-input to analog-current-output multiplier XD_(i)I_(o) is realized where

${\left( {\sum\limits_{y = 1}^{m}{D_{y}/2^{y}}} \right) \times \left( {\sum\limits_{x = 1}^{n}{D_{x}/2^{x}}} \right)} = {I_{ox}/{I_{Ry}.}}$

On the right hand-side of FIG. 11, the Y digital-input Dy₁₁ (that is m-bits wide where m=6 for illustrative clarity) is applied to a Y-iDAC, whose analog current output is Ay₁₁=I_(oY). The Y-iDAC utilizes a combination of floating and factorizing DAC methods, and it is comprised of top, middle, and bottom iDACs and Factor blocks: DAC_(ty) ₁₁ & F_(ty) ₁₁ , DAC_(my) ₁₁ & F_(my) ₁₁ , and DAC_(by) ₁₁ & F_(by) ₁₁ . In FIG. 11, for example, the upper half of DAC_(my) ₁₁ & F_(my) ₁₁ block is comprising of the Factor function F_(my) ₁₁ , and the lower half of DAC_(ty) ₁₁ & F_(ty) ₁₁ block is comprising of the subordinated iDAC function DAC_(my) ₁₁ , and so on. For Y-iDAC, a reference current I1 ₁ is mirrored by M8 ₁₁ onto M7 ₁₁ which supplies the reference current (via the floating DAC method) onto the three 2-bit subordinated factorized floating iDACs: DAC_(ty) ₁₁ (comprising of M15 ₁₁-M16 ₁₁), DAC_(my) ₁₁ (comprising of M17 ₁₁-M18 ₁₁), and DAC_(by) ₁₁ (comprising of M19 ₁₁-M20 ₁₁). The digital word Dy₁₁ (that is m=6 bits wide) is applied to the respective Y-iDAC current switches S7 ₁₁ through S12 ₁₁. The Y-iDAC utilizes NMOSFETs for its three 2-bit subordinated factorized floating iDACs sub-blocks (DAC_(ty) ₁₁ , DAC_(my) ₁₁ , and DAC_(by) ₁₁ ) whose output are fed onto diode-connected PMOSFETs M33 ₁₁, M35 ₁₁, and M37 ₁₁, respectively, which are the inputs of its three Factor sub-blocks (F_(ty) ₁₁ , F_(my) ₁₁ , and F_(by) ₁₁ ), respectively. Similar to the FIG. 8 in section 8, for illustrative clarity m=6 in FIG. 11 (but m can be as high as 16-bits), and also similarly the factor values for F_(ty) ₁₁ , F_(my) ₁₁ , and F_(by) ₁₁ (current mirrors) are 4x, 1x, and ¼x, respectively.

Also, note for example, when bit D1 y ₁₁ (the MSB of Y-iDAC, in this case) is off, then the off S7 ₁₁ couples the drain-terminal of M15 ₁₁ (i.e., I_(M15) ₁₁ ) to a bias-voltage (V_(GS)P that is a PMOS gate-to-source voltage below V_(DD), which is not shown for illustrative clarity). The bias-voltage V_(GS)P biases the current switches S7 ₁₁ through S12 ₁₁, in a similar arrangement (and in this respect, similar to the iDAC's switch arrangement illustrated in FIGS. 8, 9, and 10) when the current switches are in off states.

Consider that diode connected NMOS M21 ₁₁ are scaled and biased via I2 ₁₁ (to generate a Vg_(M21) ₁₁ ) such that M1 ₁₁ to M7 ₁₁ have enough drain-to-source voltage head-room to remain in saturation, considering gate-to-source voltage drop of M9 ₁₁ through M20 ₁₁. Similarly, diode connected PMOS M32 ₁₁ are scaled and biased via I2 ₁₁ (to generate a Vg_(M32) ₁₁ ) such that M33 ₁₁ to M38 ₁₁ have enough drain-to-source voltage head-room to remain is saturation, considering gate-to-source voltage drop of M23 ₁₁ through M31 ₁₁.

The output of the Y-iDAC that is Ay₁₁=I_(oy) supplies the reference current (via the floating DAC method) onto X-iDAC which is described next.

On the left hand-side of FIG. 11, the X digital-input Dx₁₁ (that is n-bits wide where n=6 for illustrative clarity) is applied to a X-iDAC, whose analog current output is Ay₁₁×Ax₁₁=I_(ox). The X-iDAC is the complementary version of Y-iDAC described earlier, and it utilizes a combination of floating and factorizing DAC methods, and it is comprised of top, middle, and bottom iDACs and Factor blocks: DAC_(tx) ₁₁ & F_(tx) ₁₁ , DAC_(mx) ₁₁ & F_(mx) ₁₁ , and DAC_(bx) ₁₁ & F_(x). In FIG. 11, for example, the upper half of DAC_(mx) ₁₁ & F_(mx) ₁₁ block is comprising of the Factor function F_(mx) ₁₁ and the lower-half of DAC_(tx) ₁₁ & F_(tx) ₁₁ is comprising of the subordinated DAC_(mx) ₁₁ , and so on. The output of Y-iDAC or Ay₁₁=I_(oy) supplies the reference current onto X-iDAC's three of 2-bit factorized floating subordinate iDACs: DAC_(tx) ₁₁ (comprising of M23 ₁₁-M24 ₁₁), DAC_(mx) ₁₁ (comprising of M25 ₁₁-M26 ₁₁), and DAC_(bx) ₁₁ (comprising of M27 ₁₁-M28 ₁₁). The digital word Dx₁₁ (that is also m=n=6 bits wide) is applied to the respective X-iDAC current switches S1 ₁₁ through S6 ₁. The X-iDAC utilizes PMOSFETs for its three 2-bit DAC_(tx) ₁₁ , DAC_(mx) ₁₁ , and DAC_(bx) ₁₁ whose output are fed onto diode-connected NMOSFETs M1 ₁₁, M3 ₁₁, and M5 ₁₁, respectively, which are the inputs of its three Factor blocks F_(tx) ₁₁ , F_(mx) ₁₁ , and F_(bx) ₁₁ , respectively. Similar to the FIG. 8 in section 8, for illustrative clarity n=6 in FIG. 11 (but n can be as high as 16-bits), and also similarly the factor scales or values for F_(tx) ₁₁ , F_(mx) _(i) , and F_(bx) ₁₁ (current mirrors) are 4x, 1x, and ¼x, respectively.

Also, note for example, when bit D1 x ₁₁ (the MSB of X-iDAC, in this case) is off, then the off S1 ₁₁ couples the drain-terminal of M23 ₁₁ (i.e., I_(M23) ₁₁ ) to a bias-voltage (V_(GS) _(N) ) that is a NMOS gate-to-source voltage above V_(SS). The bias-voltage (V_(GS) _(N) ) is not shown for clarity of illustration, but V_(GS) _(N) biases the current switches S1 ₁₁ through S6 ₁, in a similar arrangement (and in this respect, similar to the iDAC's switch arrangement illustrated in FIGS. 8,9, and 10) when the current switches are in off states.

Accordingly, a digital-input to analog-current-output multiplier XD_(i)I_(o) is realized where

${{\left( {\sum\limits_{y = 1}^{m}{D_{y}/2^{y}}} \right) \times \left( {\sum\limits_{x = 1}^{n}{D_{x}/2^{x}}} \right)} = {I_{ox}/I_{Ry}}},$ where m=n=6, and Ay₁₁×Ax₁₁=I_(ox) which is the analog representation of multiplying two digital codes D_(y)=Dy₁₁ and D_(x)=Dx₁₁. Bear in mind that I_(Ry) represents a reference weight for the multiplier XD_(i)I_(o) which is a scaled multiple (g) of I1 ₁. For example, if I1 ₁₁=i for Y-iDAC, then the full scale output current for each of sub-iDAC blocks DAC_(ty) ₁₁ , DAC_(my) ₁₁ , and DAC_(by) ₁₁ would be i/9 (1x+2x)=i/3 which is factored by 4x, 1x, and x/4 by its respective blocks F_(ty) ₁₁ , F_(my) ₁₁ , and F_(by) ₁₁ . Consider that x=1 is programmed as the base factor scale in current mirrors of the subordinate iDAC and Factor blocks. Accordingly, Y-iDAC's full scale output value of A_(y11) is

${{\frac{i}{3} \times \left( {{4x} + {1x} + \frac{x}{4}} \right)} = {i \times}}{5.25/3.}$ Similarly, for the X-iDAC, the full scale output current for each of subordinated iDAC blocks DAC_(tx) ₁₁ , DAC_(mx) ₁₁ , and DAC_(bx) ₁₁ would be

${{\frac{A_{y11}}{9}\left( {{1x} + {2x}} \right)} = {A_{y11}/3}},$ which is also factored by 4x, 1x, and x/4 by its respective factor blocks F_(tx) ₁₁ , F_(mx) ₁₁ , and F_(bx) ₁₁ . As noted earlier, the output of Y-iDAC, which is Ay₁₁ that is fed onto X-iDAC for its reference current signal. Therefore, X-iDAC's full scale output value of

${{A_{y11} \times A_{x11}} = {{\frac{A_{y11}}{3} \times \left( {{4x} + {1x} + \frac{x}{4}} \right)} = {{A_{y11} \times \frac{{5.2}5}{3}} = {{i \times \frac{{5.2}5}{3} \times \frac{5.25}{3}} = {i \times \left( \frac{5.25}{3} \right)^{2}}}}}},{{{where}\mspace{14mu} g} = {\left( \frac{{5.2}5}{3} \right)^{2}.}}$ As such

$I_{Ry} = {{i \times g} = {{I\; 1_{11} \times g} = {I\; 1_{11} \times \left( \frac{5.25}{3} \right)^{2}}}}$ represents the reference weight for the multiplier XD_(i)I_(o).

In summary some of the benefits of the XD_(i)I_(o) utilizing the factorizing iDAC method are as follows:

First, the XD_(i)I_(o) utilizing the factorizing iDAC (described in section 8 of FIG. 8) saves area and helps reduce FET sizes which saves die are, lowers cost, and also lowers the capacitance that can be charged and discharged faster in the iDAC's current reference network which in turn improve the transient response of the XD_(i)I_(o).

Second, the XD_(i)I_(o) operating in current-mode, which inherently runs fast.

Third, voltage swings in current-mode signal processing are small, which enables operating the XD_(i)I_(o) with lower power supply voltage. Also, factorized iDAC utilized in XD_(i)I_(o) can operate with low power supply since its operating headroom can be limited by a FET's VGS+VDS.

Fourth, operating at low supply voltage reduces power consumption of the XD_(i)I_(o). Moreover, Running the CMOSFETs in subthreshold enables the factorized iDAC used in the in XD_(i)I_(o) to operate with ultra-low currents, low power supply, and ultra-low power consumption suitable for mobile applications, especially in AI and ML applications that require numerous XD_(i)I_(o) that are ultra-low power and operate on low power supply for computation.

Fifth, by substantially equalizing the terminal voltages at the positive and negative current output of the factorizing iDAC would improve the transient response of the disclosed XD_(i)I_(o) and reduces glitch.

Sixth, the XD_(i)I_(o) needs neither any capacitors nor any resistors, which facilitates fabricating the XD_(i)I_(o) in standard digital CMOS manufacturing factory that is low cost, main-stream and readily available for high-volume mass production applications, and proven for being rugged and having high quality.

Seventh, the precision of the iDAC and hence that of the XD_(i)I_(o) multiplier can be improved by for example utilizing proper sized FETs in the iDAC's current reference network or by utilizing current source segmentation (along with digital binary-to-thermometer coding) in the iDAC's reference current transfer-function network.

Eighth, the XD_(i)I_(o) multiplier can lower resolution factorized iDACs (e.g., 3-bits or 5-bits) that occupy smaller areas, but have higher accuracy (e.g., 8-bits of accuracy or 0.4%) which is beneficial for cost-performance. For example, higher than 3 of 5 bits of accuracy is attainable in standard CMOS fabrication. With proper W/L scaling of FETs used in the current source transfer-function of iDACs (8-bits of accuracy or), a ±0.4% matching that can be achievable. As such, this disclosure can utilize low resolution iDACs that occupy small areas and achieve higher accuracy multiplication at lower cost.

Ninth, glitch is lower during code transitions in XD_(i)I_(o) multiplier because factorized iDACs utilized in XD_(i)I_(o) are smaller given that the input-to-output transfer function network utilizes smaller devices that carry smaller capacitances, which inject fewer analog glitches to the output of the XD_(i)I_(o) during digital input code transitions.

Tenth, dynamic power consumption is lower because the XD_(i)I_(o) multiplier utilizes factorized DAC that have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Eleventh, the XD_(i)I_(o) that utilizes factorized iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Twelfth, The XD_(i)I_(o) that utilizes same type of MOSFET current sources and MOSFET switches in the respective factorized iDACs, which are symmetric, matched, and scaled. This trait facilitates device parameters to track each other over process, temperature, and operating conditions variations. Accordingly, the XD_(i)I_(o)'s temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Thirteenth, the embodiment disclosed here is not restricted by FETs having to operate either in saturation (high-currents) or subthreshold (low currents). For example, some analog signal processing units rely on operating transistors in the subthreshold regions which restricts the dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing units rely on operating transistors with high currents in the saturation regions which restricts the dynamic range of analog signal processing circuits to higher current signals

Section 12A & 12B—Description of FIG. 12A & FIG. 12B

FIG. 12, including FIG. 12A and FIG. 12B, is a (Simulation Program with Integrated Circuits Emphasis) SPICE circuit simulation showing the input-output and linearity waveforms of the mixed-signal current-mode digital-input to analog-current-output multiplier (XD_(i)I_(o)) that is illustrated in FIG. 11.

For the simulations of FIG. 12A and FIG. 12B, the digital signals D_(y)=Dy₁₁=Y and D_(X)=Dx₁₁=X are spanned from full-scale to zero-scale (shown 1 as full-scale to 0 as zero-scale on the vertical axis) when both X, Y signals are ramped together in time from full-scale to zero-scale over 1 milli-second (shown on the horizontal axis). For the simulations of FIG. 12B, for clarity of illustration, D_(y) and D_(y) are fed onto ideal iDACs and plotted as ‘D_(y) Analog Equivalent Signal’ and ‘D_(x) Analog Equivalent Signal’ that are displayed next to A_(y11)×A_(x11)=Y·X which is the resultant representation of analog output of the multiplier XD_(i)I_(o). FIG. 12A illustrates 10 runs of montecarlo (MC) simulation plotting the difference between an ideal A_(y11)×A_(x11) and MC simulation of the transistor level circuit of FIG. 11 that generates Ay₁₁×A_(x11). FIG. 12B indicates the linearity of the multiplier XD_(i)I_(o).

The FETs in the iDAC and Factor blocks operate in the subthreshold region where most of the mismatch between FETs is due to their threshold voltage (V_(TH0)) mismatch. In simulating of FIG. 11's circuit using SPICE, wherein the simulations are depicted in FIG. 12A and FIG. 12B, the V_(TH0) statistical distribution for FETs is programmed as STAT CMOS V_(TH0) GAUSS 0.4%+3-3 cc=0.998, which indicated maximum I_(DS) mismatch of ˜±0.8% (for the 10 MC runs) between two arbitrary FETs (with the same W/L as that of non-digital FETs in the iDAC and Factor blocks). The 10 MC simulation runs in FIG. 12A, captured a maximum DNL of about ˜±0.3% (and a gain-error of about ˜±0.8% which is mostly due to the reference current mirror mismatch). Note that for a 6-bit DAC, the resolution is ½⁶=1.6%.

Section 13—Description of FIG. 13

FIG. 13 is a simplified circuit schematic diagram illustrating an embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is a mixed-signal current-mode digital-input to analog-current-output (D_(i)I_(o)) scalar multiply-accumulate (sMAC) circuit that utilizes current-mode digital-to-analog-converters (iDAC).

A simplified D_(i)I_(o) sMACiDAC's transfer function is

${\sum\limits_{m = 1}^{n}{s \times p_{m}}},$ where a scalar (s) is multiplied with the sum of plurality (m=n) of p_(m) weights. The disclosed embodiment of D_(i)I_(o) sMACiDAC utilizes the distributive property, wherein multiplying the sum of two or more (plurality of) addends by a (scalar) number will give the same result as multiplying each addend individually by the scalar) number and then adding the products together. Accordingly, the disclosed embodiment of D_(i)I_(o) sMACiDAC utilizes plurality of iDACs whose outputs coupled together in current-mode, which generates a summation current

$\left( {\sum\limits_{m = 1}^{n}p_{m}} \right)$ that is then fed onto a current reference terminal of a scalar iDAC, whose output generate

$s \times {\sum\limits_{m = 1}^{n}p_{m}}$ which can also be represented as

$\sum\limits_{m = 1}^{n}{s \times {p_{m}.}}$

To accomplish the above objective, the disclosed circuit of FIG. 13 utilizes a plurality of digital input words (p_(D)) that are supplied to a plurality (m=n) of iDACs that generate a plurality of respective analog output currents (p_(A)). The plurality of p_(A) analog output currents are coupled together which generates a summation current signal that is fed onto an input of a current controlled voltage source (CCVS). A voltage output of the CCVS is then fed onto a voltage controlled current source (VCCS). Then a current output of the VCCS is fed onto a (current) reference terminal of a scalar iDAC whose digital input word is s_(D). The scalar iDAC generates an analog (current) output signal which is the product of s_(A) (which represent the analog value of s_(D)) multiplied by the sum of a plurality p_(Ai) (for m=n plurality) or

${s_{A} \times {\sum\limits_{m = 1}^{n}p_{Ai}}} = {\sum\limits_{m = 1}^{n}{s_{A} \times {p_{Ai}.}}}$

To further describe the disclosed D_(i)I_(o) sMACiDAC circuit embodiment of FIG. 13, let

${A_{w} = {A_{Rw} \times {\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}}}},{A_{x} = {A_{Rx} \times {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}}}},{and}$ $A_{y} = {A_{Ry} \times {\sum\limits_{k = 1}^{y}{D_{k}/{2^{k}.}}}}$ For

${A_{Rw} = {A_{Rx} = {A_{Ry} = A_{R}}}},{{{{then}\mspace{14mu} A_{w}} + A_{x} + A_{y}} = {A_{R} \times {\left( {{\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}} + {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}} + {\sum\limits_{k = 1}^{y}{D_{k}/2^{k}}}} \right).}}}$

The nomenclatures and terminologies used here are self-explanatory for one skilled in the art, but as an example for the w-channel iDAC, bear in mind that A_(w) is the analog output, A_(Rw) is the reference input, D_(i) is the digital input word that is w-bits wide, and so on

If A_(R) is fed into reference input of scalar DACz₁₃, then

$A_{z} = {A_{R} \times {\sum\limits_{l = 1}^{z}{D_{l}/{2^{l}.}}}}$ By feeding A_(w)+A_(x)+A_(y)=A_(Rz) into the reference input of scalar DACz₁₃, then it generates:

$A_{o} = {{A_{Rz} \times {\sum\limits_{l = 1}^{z}{D_{l}/2^{l}}}} = {{\left( {A_{w} + A_{x} + A_{y}} \right) \times {\sum\limits_{i = 1}^{z}{D_{i}/2^{i}}}} = {\left\lbrack {A_{R} \times \left( {{\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}} + {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}} + {\sum\limits_{k = 1}^{y}{D_{k}/2^{k}}}} \right)} \right\rbrack \times {\sum\limits_{l = 1}^{z}{D_{l}/{2^{l}.}}}}}}$

Therefore,

${{A_{o}/A_{R}} = {\left\lbrack \left( {{\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}} + {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}} + {\sum\limits_{k = 1}^{y}{D_{k}/2^{k}}}} \right) \right\rbrack \times {\sum\limits_{l = 1}^{z}{D_{l}/2^{l}}}}},$ which can be represented in the analog domain as A_(o)/A_(R)=(A_(w)+A_(x)+A_(y))×A_(z). This represents multiplying scalar z by the accumulation of w, x, and y.

In FIG. 13, the scalar iDACs and plurality of iDACs are shown with 3-bit of resolution i=j=k=l=3 and there are three (plurality) of iDACs, as an illustration and for clarity of description but not as a limitation of this disclosure. Resolution of iDACs can be up to 16-bits, and the plurality of iDACs can be a sea of iDACs and for example 1000 channels.

As noted earlier, an iDAC transfer function where A_(o)=I_(o) and A_(R)=I_(R) can be simplified to:

$I_{o} = {{I_{R}{\sum\limits_{i = 1}^{n}{D_{i}/2^{i}}}} = {\left( {I_{R}/2^{n}} \right) \times {\sum\limits_{i = 1}^{n}{D_{i} \times {2^{i - 1}.}}}}}$ For example, let's consider half-scale of a 3-bit wide digital word corresponding to the digital binary word D_(i)=100 or D₁=1, and D₂=D₃=0 and letting I_(R) be 1 unit representing full-scale for I_(o). In such an example, the DAC's input-to-output transfer function would be as follows: I_(o)=I_(R)×[D₁/2¹+D₂/2²+D₃×2³]=(I_(R))×[½¹+0/2²+0/2³]=I_(R)/2=½ reference unit, which is ½ of full scale.

Here a more detailed description of embodiment of the D_(i)I_(o) sMACiDAC's circuit illustrated in FIG. 13 is provided. The reference current I1 ₁₃=I_(r), is applied to a diode connected M1 ₁₃ whose Vgs_(M1) ₁₃ biases the binary weighted current source network in each of three iDAC: DACw₁₃, DACx₁₃, and DACy₁₃. Notice that M12 ₁₃ and I2 ₁₃ program the Vgs_(M12) ₁₃ that biases the cascoded FETs in binary current sources of DACw₁₃, DACx₁₃, and DACy₁₃ to attain higher output impedance of the respective iDAC's current network with higher accuracy, which can be omitted to save area if lower V_(DD) with less variation is available in the end-application.

A DACw₁₃ receives a digital word Dw₁₃, and generates an analog output current Aw₁₃, wherein Vgs_(M1) ₁₃ biases M2 ₁₃, M3 ₁₃, and M4 ₁₃ (according to their respective width-over-length or W/L scales a. x, 1x, 2x, 4x) which programs the DACw₁₃'s binary weighted currents as a ratio of the I1 ₁₃=I_(r′). The DACw₁₃'s current switches S1 ₁₃, S2 ₁₃, and S3 ₁₃ steer the respective M2 ₁₃, M3 ₁₃, and M4 ₁₃ currents to either a diode connected M30 ₁₃ (which is coupled with the DACw₁₃'s I_(O) ⁺ port) or the DACw₁₃'s I_(O) ⁺ port (at Aw₁₃ signal) in accordance with the polarity of digital word Dw₁₃ bits. As it would be clear to one skilled in the art, for example, when Dw₁₃'s MSB in on (high-state), then S1 ₁₃ steers M2 ₁₃'s current (through the cascoded FET M14 ₁₃) onto the DACw₁₃'s I_(O) ⁺ port (carrying the analog output current Aw₁₃). Conversely, when Dw₁₃'s MSB in off (low-state), then S1 ₁₃ steers M2 ₁₃'s current (through the cascoded FET M14 ₁₃) onto the DACw₁₃'s I_(O) ⁻ port and onto the diode connected M30 ₁₃ (through the cascoded FET M25 ₁₃).

A DACx₁₃ receives a digital word Dx₁₃, and generates an analog output current Ax₁₃, wherein Vgs_(M113) biases M5 ₁₃, M6 ₁₃, and M7 ₁₃ (according to their respective width-over-length or W/L scales a. x, 1x, 2x, 4x) which programs the DACx₁₃'s binary weighted currents as a ratio of the I1 ₁₃=I_(r′). The DACx₁₃'s current switches S4 ₁₃, S5 ₁₃, and S6 ₁₃ steer the respective M5 ₁₃, M6 ₁₃, and M7 ₁₃ currents to either the diode connected M30 ₁₃ (which is coupled with the DACx₁₃'s I_(O) ⁻ port) or the DACx₁₃'s I_(O) ⁺ port (for Ax₁₃ signal) in accordance with the polarity of the Dx₁₃ bits.

A DACy₁₃ receives a digital word Dy₁₃, and generates an analog output current Ay₁₃, wherein Vgs_(M1) ₁₃ biases M8 ₁₃, M9 ₁₃, and M10 ₁₃ (according to their respective width-over-length or W/L scales a. x, 1x, 2x, 4x) which programs the DACy₁₃'s binary weighted currents as a ratio of the I1 ₁₃=I_(r′). The DACy₁₃'s current switches S7 ₁₃, S8 ₁₃, and S9 ₁₃ steer the respective M8 ₁₃, M9 ₁₃, and M10 ₁₃ currents to either the diode connected M30 ₁₃ (which is coupled with the DACy₁₃'s I_(O) ⁻ port) or the DACy₁₃'s I_(O) ⁺ port (for Ay₁₃ signal) in accordance with the polarity of the Dy₁₃ bits.

As described earlier, the current outputs of DACw₁₃, DACx₁₃, and DACy₁₃ are then summed to generate the output current summation Aw₁₃+Ax₁₃+Ay₁₃, which is fed onto the input of a CCVS (or current-to-voltage converter iTv₁₃) comprising of M26 ₁₃ and M31 ₁₃. An output of the CCVS is Vgs_(M31) ₁₃ which is supplied to the input of a VCCS (or voltage-to-current converter vTi₁₃) comprising of M32 ₁₃.

Consider that for a=1, the full scale output current for each of DACw₁₃, DACx₁₃, and DACy₁₃ is (4+2+1)×I_(r′)=7I_(r′).

Accordingly, the full-scale output current summation Aw₁₃+Ax₁₃+Ay₁₃ would compute to 3×7I_(r′), =21I_(r′). The W/L's of M31 ₁₃ and M32 ₁₃ (i.e., b·x and c·x) program the combined gain of iTv₁₃ and vTi₁₃ which scales the sum of Aw₁₃+Ax₁₃+Ay₁₃ before the said sum is supplied to the reference input of a DACz₁₃. For clarity of description b=c=1 which provides a combined current scaling (net-gain) of 1 (through iTv₁₃ to vTi₁₃) for the sum of Aw₁₃+Ax₁₃+Ay₁₃ currents that are supplied to the reference input of a DACz₁₃.

The floating DACz₁₃ receives a digital word Dz₁₃, and generates an analog output current at the DACz₁₃'s I_(o) ⁺ port that is the output current of D_(i)I_(o) sMACiDAC as being represented in the analog domain and proportional to A_(R″): A_(o)/A_(R″)=(A_(w)+A_(x)+A_(y))×A_(z). The DACz₁₃'s current switches S10 ₁₃, S11 ₁₃, and S12 ₁₃ steer the respective M27 ₁₃, M28 ₁₃, and M29 ₁₃ currents to either a diode connected M11 ₁₃ (which is coupled with the DACz₁₃'s I_(o) ⁻ port) or the DACz₁₃'s I_(o) ⁺ port in accordance with the polarity of the Dz₁₃ bits.

As indicated earlier, for a=b=c=1, then A_(R″) is a scaled reference current where A_(R″)=21I_(r′). Notice that DACz₁₃ utilizes a floating iDAC method that is disclosed in FIG. 1 section 1. Also note that M24 ₁₃ and I2 ₁₃ program the Vgs_(M24) ₁₃ that biases the cascoded FETs M25 ₁₃ to M29 ₁₃ which provides sufficient drain-to-source voltages (V_(DS)) head-room and substantially equalizes the V_(DS) between M31 ₁₃ and M32 ₁₃ for better current matching and also to maintain their operation in the saturation regions. Also, to enhance the dynamic response of iTv₁₃ and vTi₁₃, a constant current Ij₁₃ is added to keep the diode connected M31 ₁₃ constantly alive during D_(i)I_(o) sMACiDAC's zero and full scale transitions, and accordingly an substantially equal current Ij′₁₃ is subtracted from drain terminal of M32 ₁₃ to keep the mirror balanced.

Bear in mind that for better dynamic response and substantially equalization between the operating voltages at the I_(o) ⁻ and I_(o) ⁺ ports of the DACw₁₃, DACx₁₃, and DACy₁₃, their I_(o) ⁻ ports can be coupled with drain terminal of M30 ₁₃ (also coupled with source terminal of M25 ₁₃), while a current source (e.g., Ij″₁₃ not shown in FIG. 13) can be coupled with gate terminal of M30 ₁₃ (also coupled with drain terminal of M25 ₁₃).

In summary, the embodiment illustrated in FIG. 13 of a mixed-mode scalar multiply-accumulate (D_(i)I_(o) sMACiDAC) circuit that processes signals in current-mode utilizing iDACs has the following benefits:

First, the disclosed D_(i)I_(o) sMACiDAC utilizing plurality of iDACs (along with CCVS and VCCS) whose outputs are summed in current-mode and fed onto the reference input terminal of a scalar iDAC saves area and lowers cost, and improved performance with faster dynamic response. This is in part due to the efficacy in performing the distributive property in current-mode, wherein multiplying the sum of two or more addends by a number will give the same result as multiplying each addend individually by the number and then adding the products together. Summation in current-mode is accomplished by simply coupling plurality of addends (i.e., coupling the output of plurality of iDACs together), and feeding the said summation to another scalar iDAC's reference input. This will result in multiplying each addend individually by the scalar number and then adding the products together, which is fast since signals are processed in current-mode.

Second, utilizing the floating iDAC method disclosed in FIG. 1 section 1, saves area and reduces FETs sizes carrying lower capacitances in the iDAC's current reference network which in turn lowers the cost, reduces the size, and improves the transient response of the D_(i)I_(o) sMACiDAC that utilizes such iDACs.

Third, as noted earlier, the disclosed D_(i)I_(o) sMACiDAC utilizing iDACs that operate in current-mode is inherently fast.

Fourth, voltage swings in current-mode signal processing are small, which enables operating the disclosed D_(i)I_(o) sMACiDAC with lower power supply voltage and retain the speed and dynamic rage benefits.

Fifth, operating at low supply voltage reduces power consumption of the disclosed D_(i)I_(o) sMACiDAC. Additionally, the flexibility to run the CMOSFETs in subthreshold enables a iDAC that are utilized in D_(i)I_(o) sMACiDAC to operate with ultra-low currents, even lower power supplies, and ultra-low power consumption suitable for mobile applications, especially in AI and ML applications that may require numerous ultra-low power and low power supply iDACs for computation.

Sixth, the disclosed D_(i)I_(o) sMACiDAC utilizing iDAC for signal processing such as addition or subtraction operations, in current mode, take small area and can be performed fast.

Seventh, by substantially equalizing the terminal voltages at I_(o) ⁺ and I_(o) ⁻ ports of plurality of iDACs as well as the I_(o) ⁺ and I_(o) ⁻ ports of scalar iDACs utilized in the disclosed D_(i)I_(o) sMACiDAC, improves the D_(i)I_(o) sMACiDAC's transient response and glitch is reduced during on-to-off D_(i)I_(o) sMACiDAC's digital input code transitions.

Eight, there are no passive devices in the disclosed D_(i)I_(o) sMACiDAC of FIG. 13, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Ninth, the precision of the disclosed D_(i)I_(o) sMACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Tenth, the disclosed D_(i)I_(o) sMACiDAC of FIG. 13 can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication due to (8-bits of accuracy or ±0.4%) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)I_(o) sMACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Eleventh, glitch is lower during code transitions in D_(i)I_(o) sMACiDAC because floating iDACs utilized in D_(i)I_(o) sMACiDAC can be made smaller given that their input-to-output transfer function network utilizes smaller devices that carry smaller capacitances, which inject fewer analog glitches to the output of the D_(i)I_(o) sMACiDAC during digital input code transitions.

Twelfth, dynamic power consumption is lower because the D_(i)I_(o) sMACiDAC utilizes floating iDAC that have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Thirteenths, the D_(i)I_(o) sMACiDAC that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Fourteenth, the D_(i)I_(o) sMACiDAC that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating iDACs, which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process-temperature-operation conditions variations. Accordingly, the D_(i)I_(o) sMACiDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Fifteenth, while digital computation is generally accurate but it may be excessively power hungry. Current-mode analog and mixed-signal computation that is disclosed here can be approximate but signal processing can be accomplished asynchronously and power consumption can be lower. Moreover, analog current errors here generally result in degradation but (not total failures) of analog computation, which provides the end-application with approximate results to work with instead of experiencing failed results.

Sixteenth, the embodiment disclosed here is not restricted by FETs having to operate either in saturation (high-currents) or subthreshold (low currents). For example, some analog signal processing units rely on operating transistors in the subthreshold regions which restricts the dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing units rely on operating transistors with high currents in the saturation regions which restricts the dynamic range of analog signal processing circuits to higher current signals.

Seventeenth, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 14—Description of FIG. 14

FIG. 14 is a simplified functional block diagram illustrating another embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is another mixed-signal current-mode digital-input to analog-current-output (D_(i)I_(o)) scalar multiply-accumulate (sMAC) circuit utilizing current-mode digital-to-analog-converters (iDAC).

The disclosed embodiment of D_(i)I_(o) sMACiDAC in FIG. 14 also utilizes the a multiplication property, wherein multiplying the sum of two or more (plurality of) addends by a (scalar) number will give the same result as multiplying each addend individually by the number and then adding the products together. To accomplish this objective, the disclosed circuit of FIG. 14 utilizes a scalar iDACs that receives a digital input word (s_(D)) and generates an analog current (s_(A)). Concurrently, a plurality of iDACs receive a respective plurality of digital input words (p_(D)). The s_(A) is replicated onto plurality of s_(A)s that are supplied to a plurality reference inputs of the plurality of iDACs. The outputs of the plurality of iDACs are couple together to generate a summation current signal, which is the product of s_(A) (which represent the analog value of s_(D)) multiplied by the sum of a plurality p_(Ai) (which represent a plurality of respective analog value of the respective plurality of p_(D)) or

${s_{A} \times {\sum\limits_{m = 1}^{n}p_{Ai}}} = {\sum\limits_{m = 1}^{n}{s_{A} \times {p_{Ai}.}}}$

To further describe the disclosed D_(i)I_(o) sMACiDAC circuit embodiment of FIG. 14, let the FET's W/L factors a=b=c=d=e=1. For an A_(Rz) feeding the reference input of scalar DACz₁₄, its output signal

$A_{z} = {A_{Rz} \times {\sum\limits_{l = 1}^{z}{D_{l}/{2^{l}.}}}}$ Similarly,

${A_{w} = {A_{Rw} \times {\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}}}},{A_{x} = {A_{Rx} \times {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}}}},{{{and}A_{y}} = {A_{Ry} \times {\sum\limits_{k = 1}^{y}{D_{k}/{2^{k}.}}}}}$ By replicating and feeding substantially equal values of A_(z) onto the reference inputs of a plurality (e.g., 3 channels) of floating iDACs, namely DACw₁₄, DACx₁₄, and DACy₁₄, then:

$A_{Rw} = {A_{Rx} = {A_{Ry} = {A_{z} = {A_{Rz} \times {\sum\limits_{l = 1}^{z}{D_{l}/{2^{l}.}}}}}}}$ Therefore,

${\left( {A_{Rz} \times {\sum\limits_{l = 1}^{z}{D_{l}/2^{l}}}} \right) \times {\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}}};$ ${\left( {A_{Rz} \times {\sum\limits_{l = 1}^{z}{D_{l}/2^{l}}}} \right) \times {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}}};$ $\left( {A_{Rz} \times {\sum\limits_{l = 1}^{z}{D_{l}/2^{l}}}} \right) \times {\sum\limits_{k = 1}^{y}{D_{k}/{2^{k}.}}}$

Therefore, the disclosed D_(i)I_(o) sMACiDAC output current signal which is the summation of w, x, and y-iDAC's outputs is thus:

${A_{w} + A_{x} + A_{y}} = {A_{Rz} \times {\sum\limits_{l = 1}^{z}{{D_{l}/2^{l}} \times {\left( {{\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}} + {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}} + {\sum\limits_{k = 1}^{y}{D_{k}/2^{k}}}} \right).}}}}$ Therefore,

${{A_{o}/A_{R}} = {\left\lbrack \left( {{\sum\limits_{i = 1}^{w}{D_{i}/2^{i}}} + {\sum\limits_{j = 1}^{x}{D_{j}/2^{j}}} + {\sum\limits_{k = 1}^{y}{D_{k}/2^{k}}}} \right) \right\rbrack \times {\sum\limits_{l = 1}^{z}{D_{l}/2^{l}}}}},$ which can be mapped in the analog domain as A_(o)/A_(R)=(A_(w)+A_(x)+A_(y))×A_(z) representing multiplying scalar z by the accumulation of w, x, and y.

Note that in FIG. 14, the scalar DACz₁₄ and plurality of iDACs (e.g., for 3-channels DACw₁₄, DACx₁₄, and DACy₁₄) are shown with 3-bit of resolution with i=j=k=l=3. In FIG. 14's illustration of D_(i)I_(o) sMACiDAC embodiment with 3-bits of resolution and 3 channels is for illustrative clarity of description, but not as a limitation of this disclosure. Resolution of iDACs can be up to 16-bits, and the plurality of iDACs can be a sea of iDACs and for example 1000 channels.

Here, a more detailed description of embodiment of the D_(i)I_(o) sMACiDAC's circuit illustrated in FIG. 14 is provided. The reference current I1 ₁₄=I_(r′) is applied to a diode connected M17 ₁₄ whose Vgs_(M17) ₁₄ biases the binary weighted current source network of the scalar DACz₁₄. Let e=1 for this illustration. Consider that M18 ₁₄ and I2 ₁₄ program the Vgs_(M18) ₁₄ that biases the cascoded FETs is intended to increase (accuracy and) the output impedance of DACz₁₄'s current source network.

A DACz₁₄ receives a digital word Dz₁₄, and generates an analog output current Az₁₄, wherein Vgs_(M17) ₁₄ biases M23 ₁₄, M24 ₁₄, and M25 ₁₄ (according to their respective width-over-length or W/L scales e. x, 1x, 2x, 4x) which programs the DACz₁₄'s binary weighted currents as a ratio of the I1 ₁₄=I_(r′). The DACz₁₄'s current switches S10 ₁₄, S11 ₁₄, and S12 ₁₄ steer the respective M23 ₁₄, M24 ₁₄, and M251 ₄ currents to either a diode connected M5 ₁₄ (which is coupled with the DACz₁₄'s I_(o) ⁻ port) or the DACz₁₄'s I_(o) ⁺ port (for Az₁₄ signal) in accordance with the polarity of the Dz₁₄ bits. As it would be clear to one skilled in the art, for example, when Dz₁₄'s MSB in on (high-state), then S10 ₁₄ steers M23 ₁₄'s current (through the cascoded FET M19 ₁₄) onto the DACz₁₄'s I_(o) ⁺ port (carrying the an analog output current Az₁₄). Conversely, when Dz₁₄'s MSB in off (low-state), then S10 ₁₄ steers M23 ₁₄'s current (through the cascoded FET M19 ₁₄) onto the DACz₁₄'s I_(i) ⁻ port and onto the diode connected M5 ₁₄. Also, notice that for e=1, the DACz₁₄ full-scale output is I1 ₄ (4+2+1)=7I_(r′).

As noted earlier, Az₁₄ (which is the current outputs of the DACz₁₄) is replicated and fed onto the reference input terminals of DACw₁₄, DACx₁₄, and DACy₁₄. In the embodiment of FIGS. 15 and 14, proportional replication of Az₁₄ is effectuated via feeding Az₁₄ onto a current-controlled-voltage source (CCVS) with a gain of 1/g, whose output voltage can then feed plurality of (e.g., 3) voltage-controlled-current-sources (VCCSs) with their gains proportional to g. The plurality of outputs of the VCCSs can then feed the reference input terminals of a plurality of iDACs (e.g., DACw₁₄, DACx₁₄, and DACy₁₄).

More specifically, in FIG. 14, the CCVS and VCCSs are implemented by feeding Az₁₄ current onto a diode connected M4 ₁₄ whose current is scaled and mirrored through M1 ₁₄, M2 ₁₄, and M3 ₁₄. For descriptive clarity, let M1 ₁₄ to M4 ₁₄'s W/L factors a=b=c=d=1 (which programs the gains of CCVS and VCCS). As described in the floating iDAC of FIG. 2 section 2, M1 ₁₄, M2 ₁₄, and M3 ₁₄ supply the reference current signal for the three floating iDACs here: DACw₁₄, DACx₁₄, and DACy₁₄. Also, bias current I2 ₁₄ and a diode connected M6 ₁₄ program Vgs_(M6) ₁₄ which biases the respective DACw₁₄, DACx₁₄, and DACy₁₄'s binary weighted current networks comprising of M7 ₁₄-M9 ₁₄, M10 ₁₄-M12 ₁₄, and M13 ₁₄-M15 ₁₄, respectively.

A DACw₁₄ receives a digital word Dw₁₄ at its digital input port, receives a reference current signal that is a proportional replica of Az₁₄ through a current mirror (M4 ₁₄, M1 ₁₄) and generates an analog output current signal Aw₁₄×Az₁₄. As noted earlier, floating DACw₁₄'s reference current is proportional to Az₁₄ that (through M1 ₁₄) is binarily distributed between M7 ₁₄, M8 ₁₄, and M9 ₁₄, according to their respective width-over-length or W/L scales 1x, 2x, 4x. The DACw₁₄'s current switches S1 ₁₄, S2 ₁₄, and S31 ₄ steer the respective M7 ₁₄, M8 ₁₄, and M9 ₁₄ currents to either a diode connected M26 ₁₄ (which is coupled with the DACw₁₄'s I_(o) ⁻ port) or the DACw₁₄'s I_(o) ⁺ port (carrying a Aw₁₄×Az₁₄ current signal) in accordance with the polarity of the Dw₁₄ bits.

A DACx₁₃ receives a digital word Dx₁₄ at its digital input port, receives a reference current signal that is a proportional replica of Az₁₄ through a current mirror (M4 ₁₄, M2 ₁₄) and generates an analog output current signal Ax₁₄×Az₁₄. As noted earlier, floating DACx₁₄'s reference current is proportional to Az₁₄ that (through M2 ₁₄) is binarily distributed between M10 ₁₄, M11 ₁₄, and M12 ₁₄, according to their respective width-over-length or W/L scales 1x, 2x, 4x. The DACx₁₄'s current switches S414, S514, and S6 ₁₄ steer the respective M10 ₁₄, M11 ₁₄, and M12 ₁₄ currents to either a diode connected M26 ₁₄ (which is coupled with the DACx₁₄'s I_(o) ⁻ port) or the DACx₁₄'s I_(o) ⁺ port (carrying a Ax₁₄×Az₁₄ current signal) in accordance with the polarity of the Dx₁₄ bits.

A DACy₁₃ receives a digital word Dy₁₄ at its digital input port, receives a reference current signal that is a proportional replica of Az₁₄ through a current mirror (M4 ₁₄, M3 ₁₄) and generates an analog output current signal Ay₁₄×Az₁₄. As noted earlier, floating DACy₁₄'s reference current is proportional to Az₁₄ that (through M3 ₁₄) is binarily distributed between M13 ₁₄, M14 ₁₄, and M15 ₁₄, according to their respective width-over-length or W/L scales 1x, 2x, 4x. The DACy₁₄'s current switches S7 ₁₄, S8 ₁₄, and S9 ₁₄ steer the respective M13 ₁₄, M14 ₁₄, and M15 ₁₄ currents to either a diode connected M26 ₁₄ (which is coupled with the DACy₁₄'s I_(o) ⁻ port) or the DACy₁₄'s I_(o) ⁺ port (carrying a Ay₁₄×Az₁₄ current signal) in accordance with the polarity of the Dy₁₄ bits.

As indicated earlier, DACz₁₄'s full scale output current is 7I1 ₄=7I_(r′), and as such the DACw₁₄, DACx₁₄, and DACy₁₄ full scale can be programmed to 7I_(r′) with a=b=c=d=e=1. In this case, the summation of DACw₁₄, DACx₁₄, and DACy₁₄ full-scale output current or summation of Aw₁₄×Az₁₄+Ax₁₄×Az₁₄+Ay₁₄×Az₁₄ would compute to 3×7I_(r′)=21I_(r′). The output of sMACiDAC can be represented in the analog domain and proportional to 21I_(r′)=A_(R″): A_(o)/A_(R″)=(A_(w)+A_(x)+A_(y))×A_(z).

As stated earlier, M6 ₁₄ and I2 ₁₄ program the Vgs_(M6) ₁₄ that biases the floating current sources of DACw₁₄, DACx₁₄, and DACy₁₄ as well as provide sufficient drain-to-source voltages (V_(DS)) head-room and substantially equalizes the V_(DS) between M1 ₁₄ and M3 ₁₄ for better current matching and also to maintain their operation in the saturation regions. Also, to enhance the dynamic response D_(i)I_(o) sMACiDAC a constant current Ij₁₄ is added to keep the diode connected M4 ₁₄ alive during DACw₁₄'s zero and full scale transitions, and accordingly a proportional current Ij′₁₄ (e.g., 3×Ij₁₄) is subtracted from the current output terminal of D_(i)I_(o) sMACiDAC.

In summary, the embodiment of the D_(i)I_(o) sMACiDAC circuit illustrated in FIG. 14 that processes signals in current-mode by utilizing iDACs has the following benefits:

First, the disclosed D_(i)I_(o) sMACiDAC utilizing a current mode scalar iDACs whose output is copied and fed onto the reference input terminals of plurality of iDAC saves area and lowers cost, and improved performance with faster dynamic response, in part for its efficacy in performing summation in current-mode that can be accomplished by simply coupling plurality of current signals.

Second, utilizing the floating iDAC method disclosed in FIG. 1 section 1, saves area and reduces FETs sizes (which lower capacitance) in the iDAC's current reference network which in turn lowers the cost, reduces the size, and improves the transient response of the D_(i)I_(o) sMACiDAC that utilizes such iDACs.

Third, as noted earlier, the disclosed D_(i)I_(o) sMACiDAC utilizing iDACs that operate in current-mode is inherently fast.

Fourth, voltage swings in current-mode signal processing are small, which enables operating the disclosed D_(i)I_(o) sMACiDAC of FIG. 14 with lower power supply voltage and retain the speed and dynamic rage benefits.

Fifth, operating at low supply voltage reduces power consumption of the disclosed D_(i)I_(o) sMACiDAC. Additionally, the flexibility to run the CMOSFETs in subthreshold enables a iDAC that are utilized in D_(i)I_(o) sMACiDAC to operate with ultra-low currents, even lower power supplies, and ultra-low power consumption suitable for mobile applications, especially in AI and ML applications that may require numerous ultra-low power and low power supply iDACs for computation.

Sixth, the disclosed D_(i)I_(o) sMACiDAC utilizing iDAC for signal processing such as addition or subtraction functions (in current mode) take small area and can be performed fast.

Seventh, by substantially equalizing the terminal voltages at I_(o) ⁺ and I_(o) ⁻ ports of plurality of iDACs as well as the I_(o) ⁺ and I_(o) ⁻ ports of scalar iDACs utilized in the disclosed D_(i)I_(o) sMACiDAC, improves the D_(i)I_(o) sMACiDAC's transient response and glitch is reduced during on-and-off D_(i)I_(o) sMACiDAC's digital input code transitions.

Eight, there are no passive devices in the disclosed D_(i)I_(o) sMACiDAC of FIG. 14, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Ninth, the precision of the disclosed D_(i)I_(o) sMACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Tenth, the disclosed D_(i)I_(o) sMACiDAC of FIG. 14 can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or ±0.4%) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)I_(o) sMACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Eleventh, glitch is lower during code transitions in D_(i)I_(o) sMACiDAC because floating iDACs utilized in D_(i)I_(o) sMACiDAC can be made smaller given that their input-to-output transfer function network utilizes smaller devices that carry smaller capacitances, which inject fewer analog glitches to the output of the D_(i)I_(o) sMACiDAC during digital input code transitions.

Twelfth, dynamic power consumption is lower because the D_(i)I_(o) sMACiDAC utilizes floating iDAC that have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Thirteenths, the D_(i)I_(o) sMACiDAC that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Fourteenth, the D_(i)I_(o) sMACiDAC that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating iDACs, which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process, temperature, and operating conditions variations. Accordingly, the D_(i)I_(o) sMACiDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Fifteenth, while digital computation is generally accurate but it may be excessively power hungry. Current-mode analog and mixed-signal computation that is disclosed here can be approximate but signal processing can be accomplished asynchronously and power consumption can be lower. Moreover, analog current errors here generally may result in degradation but (not total failures) of analog computation, which provides the end-application with approximate results to work with instead of experiencing failed results.

Sixteenth, the embodiment disclosed here is not restricted by FETs having to operate either in saturation (high-currents) or subthreshold (low currents). For example, some analog signal processing units rely on operating transistors in the subthreshold regions which restricts the dynamic range of analog signal processing circuits to low current signals. Also, some other analog signal processing units rely on operating transistors with high currents in the saturation regions which restricts the dynamic range of analog signal processing circuits to higher current signals.

Seventeenth, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 15—Description of FIG. 15

FIG. 15 is a simplified functional block diagram illustrating another embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is another mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) scalar multiply-accumulate (sMAC) plus bias circuit utilizing current-mode digital-to-analog-converters (iDAC) and current-mode analog-to-digital converters (iADC).

Utilizing current-mode data-converters, the D_(i)D_(o) sMACiDAC embodiment disclosed in FIG. 15, first multiplies a scalar current signal by a respective plurality of current signals, whose products are summed together in current-mode and added to a bias current signal to generate a final summation signal. This final summation current signal is digitized via a current-mode analog-to-digital-converter (iADC). FIG. 15 disclosure performs the multiply-accumulate function by utilizing analog and mixed-signal signal processing in current-mode, by arranging data-converters to leverage the distributive property of multiplication, to save area and improve performance in multiply-accumulate functions needed in AI and ML applications. As such, the embodiment disclosed in FIG. 15, performs the function of

${\sum\limits_{i = 1}^{p}\left( {{s \times W_{i}} + b} \right)},$ where s is scalar current signal (e.g., s can be programmed by iDACz₁₅), W_(i) is plurality of weight current signals with p as pluralities of channels (e.g., p=3 of W_(i) current signals can be programmed by iDACw₁₅, iDACx₁₅, and iDACy₁₅, respectively), and b is bias current signal (e.g., b current signal can be programmed by DACb₁₅). As indicated in prior sections, the illustration of FIG. 15 depicts (plurality) p=3 channels for clarity of description, but n can be a sea of channels depending on application and as many as 1000.

In FIG. 15, a scalar iDACz₁₅ is supplied with a reference current signal I1 ₁₅ at its zR₁₅ port, receives a z-bits wide digital input word Dz₁₅, and accordingly iDACz₁₅ generates an analog output current signal Az₁₅.

The Az₁₅ current is inputted to a current-controlled-voltage-source CCVS₁₅'s current input port, whose gain is programmed to g₁₅. The CCVS₁₅'s voltage output port is coupled with a plurality of voltage-controlled-current sources VCCSs₁₅, which in the FIG. 15 illustration are 3-channels VCCS1 ₁₅, VCCS2 ₁₅, and VCCS3 ₁₅ but could be more depending on the application requirement. The gains of VCCS1 ₁₅, VCCS2 ₁₅, and VCCS3 ₁₅ can be programmed to a/g₁₅, b/g₁₅, and c/g₁₅, respectively. It is of note that the CCVS and plurality of VCCS can be implemented with current mirrors, such as the one illustrated in FIG. 14 (e.g., M4 ₁₄, M1 ₁₄, M2 ₁₄, and M3 ₁₄). A plurality of iDAC's reference ports are supplied with a respective plurality of proportional replicates of scalar iDAC's output current signal as follows:

An iDACw₁₅ is supplied with the VCCS1 ₁₅'s output current (a×Az₁₅) at iDACw₁₅'s reference port wR₁₅ port. The iDACw₁₅ receives a w-bits wide digital input word Dw₁₅, and accordingly iDACw₁₅ generates an analog output current signal a×Az₁₅×Aw₁₅.

An iDACx₁₅ is supplied with the VCCS2 ₁₅'s output current (b×Az₁₅) at iDACx₁₅'s reference port xR₁₅ port. An iDACx₁₅ receives a v-bits wide digital input word Dx₁₅, and accordingly iDACx₁₅ generates an analog output current signal b×Az₁₅×Ax₁₅.

An iDACy₁₅ is supplied with the VCCS3 ₁₅'s output current (c×Az₁₅) at iDACy₁₅'s reference port yR₁₅ port. An iDACy₁₅ receives a y-bits wide digital input word Dy₁₅, and accordingly iDACy₁₅ generates an analog output current signal c×Az₁₅×Ay₁₅.

A bias iDACb₁₅ is supplied with a reference current signal I2 ₁₅ at its bR₁₅ port, receives a b-bits wide digital input word Db₁₅, and accordingly iDACb₁₅ generates an analog output current signal Ab₁₅.

The current outputs of iDACw₁₅, iDACx₁₅, iDACy₁₅, and iDACb₁₅ are coupled together to generate a summation current signal of a×Az₁₅×Aw₁₅+b×Az₁₅×Ax₁₅+c×Az₁₅×Ay₁₅+Ab₁₅=Az₁₅×(a×Aw₁₅+b×Ax₁₅+c×Ay₁₅)+Ab₁₅. This summation current signal is concurrently fed onto a current input port of iADC₁₅ which is a current-mode analog-to-digital-converter (iADC), which generates a o-bits wide digital output word Do₁₅ which is the digital representation of the D_(i)D_(o) iMACiDAC output signal Az₁₅×(a×Aw₁₅+b×Ax₁₅+c×Ay₁₅)+Ab₁₅.

In summary, the D_(i)D_(o) sMACiDAC embodiment illustrated in FIG. 15 that processes signals in current-mode utilizing iDACs has the following benefits:

First, the disclosed D_(i)I_(o) sMACiDAC utilizing plurality of current-mode iDACs whose certain outputs can be coupled together and biased (in current mode) saves area (lower cost) and improved performance (faster dynamic response), in part for its efficacy in performing summation in current-mode that can be accomplished by simply coupling plurality of current signals.

Second, standard iDACs or factorized or floating iDACs methods (described earlier in the disclosure) can be utilized, which saves area and reduces FETs sizes with lower capacitances in the iDAC's current reference network, which in turn lowers the cost, reduces the size, and improves the transient response of the D_(i)D_(o) sMACiDAC that utilizes such iDACs.

Third, as noted earlier, operating in current mode has the following benefits for the disclosed D_(i)D_(o) sMACiDAC: (a) current mode is inherently fast, (b) voltage swings in current-mode signal processing are small, which enables operating with lower power supply voltage and operating at low supply voltages facilitates reducing power consumption, (c) current-mode signal processing such as addition or subtraction functions take small area and can be performed fast.

Fourth, there are no passive devices in the disclosed D_(i)D_(o) sMACiDAC of FIG. 15, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Fifth, the precision of the disclosed D_(i)D_(o) sMACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Sixth, the disclosed D_(i)D_(o) sMACiDAC of FIG. 15 can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or ±0.4%)) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)D_(o) sMACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Seventh, dynamic power consumption is lower because the D_(i)D_(o) sMACiDAC by utilizing floating, factorized, or combination of floating and factorized iDACs which have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Eight, the D_(i)D_(o) sMACiDAC that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Ninth, the D_(i)D_(o) sMACiDAC that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating, factorized, or combination of floating and factorized iDACs, which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process, temperature, operating condition variations. Accordingly, the D_(i)D_(o) sMACiDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Tenth, while digital computation is generally accurate but it may be excessively power hungry. Current-mode analog and mixed-signal computation that is disclosed here can be approximate but signal processing can be accomplished asynchronously and power consumption can be lower. Moreover, analog current errors here generally may result in degradation but (not total failures) of analog computation, which provides the end-application with approximate results to work with instead of experiencing failed results.

Eleventh, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 16—Description of FIG. 16

FIG. 16 is a simplified functional block diagram illustrating another embodiment of a mixed-signal current-mode scalar multiply-accumulate (sMACiDAC) circuit. The disclosed sMACiDAC is another mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) scalar multiply-accumulate (sMAC) plus bias circuit utilizing current-mode digital-to-analog-converters (iDAC) and current-mode analog-to-digital converters (iADC).

Utilizing current-mode data-converters, the D_(i)D_(o) sMACiDAC embodiment disclosed in FIG. 16, first a plurality of current signals are summed together, wherein the said summation current signal is multiplied by a scalar current signal, whose products are summed together in current-mode and added to a bias current signal to generate a final summation signal. This final summation current signal is digitized via a current-mode analog-to-digital-converter (iADC). FIG. 16 disclosure performs the multiply-accumulate function by utilizing analog and mixed-signal signal processing in current-mode, by arranging data-converters to leverage the distributive property of multiplication, to save area and improve performance in multiply-accumulate functions needed in AI and ML applications. As such, the embodiment disclosed in FIG. 16, performs the function of

${\sum\limits_{i = 1}^{p}\left( {{s \times W_{i}} + b} \right)},$ where s is scalar current signal (e.g., s can be programmed by iDACz₁₆), W_(i) is plurality of weight current signals with p as pluralities of channels (e.g., p=3 of W_(i) current signals can be programmed by iDACw₁₆, iDACx₁₆, and iDACy₁₆, respectively), and b is bias current signal (e.g., b current signal can be programmed by DACb₁₆). As indicated in prior sections, the illustration of FIG. 16 depicts (plurality) p=3 channels for clarity of description, but n can be a sea of channels depending on application and as many as 1000.

In FIG. 16, a plurality of iDAC's reference ports are supplied with a respective plurality of current reference signals, wherein the plurality of iDACs generate a plurality of output current signals, which are coupled together to generate a summation current signal as follows: An iDACw₁₆ is supplied with the I1 ₁₆ reference current at iDACw₁₆'s reference port wR₁₆ port. The iDACw₁₆ receives a w-bits wide digital input word Dw₁₆, and accordingly iDACw₁₆ generates an analog output current signal Aw₁₆. An iDACx₁₆ is supplied with the I2 ₁₆ reference current at iDACx₁₆'s reference port xR₁₆ port. The iDACx₁₆ receives a v-bits wide digital input word Dx₁₆, and accordingly iDACx₁₆ generates an analog output current signal Ax₁₆. An iDACy₁₆ is supplied with the I3 ₁₆ reference current at iDACy₁₆'s reference port yR₁₆ port. The iDACy₁₆ receives a y-bits wide digital input word Dy₁₆, and accordingly iDACy₁₆ generates an analog output current signal Ay₁₆. The output currents of the iDACw₁₆, iDACx₁₆, and iDACy₁₆ are coupled together to generate a summation current represented by Aw₁₆+Ay₁₆+Ax₁₆ which is fed onto an input port of current-controlled-voltage source CCVS₁₆ (which a gain of g₁₆) whose output is coupled with an input of a voltage-controlled-current-source VCCS₁₆ (which a gain of a/g₁₆). Considering the net-gain of g₁₆×1/g₁₆=a attributed to CCVS₁₆ and VCCS₁₆ combination, output current representing (Aw₁₆+Ay₁₆+Ax₁₆)×a is generated at the output port of VCCS₁₆.

The output current of VCCS₁₆ is concurrently fed onto zR₁₆ which is a reference input terminal of a scalar iDACz₁₆. The iDACz₁₆ receives a z-bits wide digital input word Dz₁₆, and accordingly iDACz₁₆ generates an analog output current signal that represents a×Az₁₆×(Aw₁₆+Ay₁₆+Ax₁₆).

Also concurrently, a bias iDACb₁₆ is supplied with a reference current signal I4 ₁₆ at its bR₁₆ port, receives a b-bits wide digital input word Db₁₆, and accordingly iDACb₁₆ generates an analog output current signal Ab₁₆.

The output of iDACz₁₆ and output of iDACb₁₆ are coupled together to generate a final summation current signal representing a×Az₁₆×(Aw₁₆+Ay₁₆+Ax₁₆)+Ab₁₆. This final summation current signal is concurrently fed onto a current input port of iADC₁₆ which is a current-mode analog-to-digital-converter (iADC), which generates a o-bits wide digital output word Do₁₆ which is the digital representation of the D_(i)D_(o) iMACiDAC output signal a×Az₁₆×(Aw₁₆+Ay₁₆+Ax₁₆)+Ab₁₆.

Bear in mind that FIG. 13 can be a circuit embodiment of the functional block diagram illustrating the embodiment of D_(i)D_(o) sMACiDAC circuit of FIG. 16, excluding the iDACb₁₆ and iADC₁₆. Also, keep in mind that similar to the circuit embodiment illustrated in FIG. 13, the CCVS₁₆ and VCCS₁₆ combination in FIG. 16 can correspond to the iTv₁₃ and vTi₁₃ combination in FIG. 13 (comprising of M26 ₁₃, M27 ₁₃, M31 ₁₃, and M32 ₁₃ and Ij₁₃, Ij′₁₃).

In summary, the embodiment illustrated in FIG. 16 of a mixed-mode scalar multiply-accumulate (D_(i)D_(o) sMACiDAC) circuit that processes signals in current-mode utilizing iDACs has the following benefits:

First, the disclosed D_(i)I_(o) sMACiDAC utilizing plurality of current-mode iDACs whose certain outputs can be coupled together and biased in current mode, which saves area and lowers cost, and improved performance with faster dynamic response, in part for its efficacy in performing summation in current-mode that can be accomplished by simply coupling plurality of current signals.

Second, standard iDACs or factorized or floating iDACs methods (described earlier in the disclosure) can be utilized, which saves area and reduces FETs sizes carrying lower capacitances in the iDAC's current reference network, which in turn lowers cost, reduces the size, and improves the transient response of the D_(i)D_(o) sMACiDAC that utilizes such iDACs.

Third, as noted earlier, operating in current mode has the following benefits for the disclosed D_(i)D_(o) sMACiDAC: (a) current mode is inherently fast, (b) voltage swings in current-mode signal processing are small, which enables operating with lower power supply voltage and operating at low supply voltages facilitates reducing power consumption, (c) current-mode signal processing such as addition or subtraction functions take small area and can be performed fast.

Fourth, there are no passive devices in the disclosed D_(i)D_(o) sMACiDAC of FIG. 16, and as such it does not require resistors or capacitors, which reduces manufacturing size and cost.

Fifth, the precision of the disclosed D_(i)D_(o) sMACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Sixth, the disclosed D_(i)D_(o) sMACiDAC of FIG. 16 can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or ±0.4%) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)D_(o) sMACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Seventh, dynamic power consumption is lower because the D_(i)D_(o) sMACiDAC by utilizing floating, factorized, or combination of floating and factorized iDACs which have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Eight, the D_(i)D_(o) sMACiDAC that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Ninth, the D_(i)D_(o) sMACiDAC that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating, factorized, or combination of floating and factorized iDACs, which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process, temperature, and operating condition variations. Accordingly, the D_(i)D_(o) sMACiDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Tenth, while digital computation is generally accurate but it may be excessively power hungry. Current-mode analog and mixed-signal computation that is disclosed here can be approximate but signal processing can be accomplished asynchronously and power consumption can be lower. Moreover, analog current errors here generally may result in degradation but (not total failures) of analog computation, which provides the end-application with approximate results to work with instead of experiencing failed results.

Thirteenth, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 17—Description of FIG. 17

FIG. 17 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode multiply-accumulate (iMACiDAC) circuit. The disclosed iMACiDAC is a mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) multiply-accumulate (iMAC) circuit plus bias circuit utilizing current-mode digital-to-analog-converters (iDAC) and current-mode analog-to-digital converters (iADC).

The D_(i)D_(o) iMACiDAC embodiment disclosed in FIG. 17 is arranged with a plurality of weight iDACs to generate a plurality of weight current signals that feed the reference input of a respective plurality of data iDACs. A respective plurality of the data iDACs outputs generate a respective plurality of products as analog current representations of a respective plurality of the weight iDACs input signals multiplied by a respective plurality of the data iDACs input signals. The respective plurality of the data iDACs outputs are coupled together to generate a summation current signal that is then added to a bias current signal to generate a final summation current signal, wherein the bias current signal is programmed by a bias iDAC. This final summation current signal is digitized via a current-mode analog-to-digital-converter (iADC) whose digital outputs represent a summation of bias iDAC input signal added with a summation of the products of the respective weight iDAC input signals multiplied by the respective data iDAC input signals.

FIG. 17 discloses an embodiment that performs a multiply-accumulate function by performing analog and mixed-signal processing utilizing current-mode data-converters, arranged in such a way to leverage the distributive property of multiplication, which save area and improve performance of multiply-accumulate functions needed in AI and ML applications. As such the embodiment disclosed in FIG. 17, performs the function of

${\sum\limits_{i = 1}^{p}\left( {{D_{i} \times W_{i}} + b} \right)},$ where D_(i) is plurality of ‘data current signals’ with p as plurality (e.g., p=3 of D_(i) can be generated by iDACs₁₇, iDACt₁₇, and iDACu₁₇), W_(i) is plurality of ‘weight current signals’ with p again as plurality (e.g., again with p=3 of W current signals that can be generated by iDACw₁₆, iDACx₁₆, and iDACy₁₆, respectively), and b is ‘bias current signal’ (e.g., b current signal can be generated by DACb₁₇). As indicated in prior sections, the illustration of FIG. 17 depicts (plurality) p=3 for clarity of description, but n can be a sea of multiplying iDAC channels depending on application and as many as 1000.

In FIG. 17, a weight iDACw₁₇ is supplied with a reference current signal I4 ₁₇ at its wR₁₇ port. Also, iDACw₁₇ receives a w-bits wide digital input word Dw₁₇, and accordingly iDACw₁₇ generates an analog output current signal Aw₁₇. Concurrently, a data iDACs₁₇ is supplied with Aw₁₇ at its sR₁₇ reference input port, while iDACs₁₇ receives a s-bits wide digital input word Ds₁₇, and accordingly iDACs₁₇ generates an analog output current signal As₁₇×Aw₁₇, which represents the product of w ‘weight current signal’ multiplied by s ‘data current signal’.

A weight iDACx₁₇ is supplied with a reference current signal I3 ₁₇ at its xR₁₇ port. Also, iDACx₁₇ receives a v-bits wide digital input word Dx₁₇, and accordingly iDACx₁₇ generates an analog output current signal Ax₁₇. Concurrently, a data iDACt₁₇ is supplied with Ax₁₇ at its tR₁₇ reference input port, while iDACt₁₇ receives a t-bits wide digital input word Dt₁₇, and accordingly iDACt₁₇ generates an analog output current signal At₁₇×Ax₁₇, which represents the product of x ‘weight current signal’ multiplied by t ‘data current signal’.

A weight iDACy₁₇ is supplied with a reference current signal I2 ₁₇ at its yR₁₇ port. Also, iDACy₁₇ receives a y-bits wide digital input word Dy₁₇, and accordingly iDACy₁₇ generates an analog output current signal Ay₁₇. Concurrently, a data iDACu₁₇ is supplied with Ay₁₇ at its uR₁₇ reference input port, while iDACu₁₇ receives a u-bits wide digital input word Du₁₇, and accordingly iDACu₁₇ generates an analog output current signal Au₁₇×Ay₁₇, which represents the product of y ‘weight current signal’ multiplied by u ‘data current signal’.

A bias iDACb₁₇ is supplied with a reference current signal I1 ₁₇ at its bR₁₇ reference input port. Also, iDACb₁₇ receives a b-bits wide digital input word Db₁₇, and accordingly iDACb₁₇ generates an analog output current signal Ab₁₇.

The output of iDACb₁₇, iDACs₁₇, iDACt₁₇, and iDACu₁₇ are coupled together to generate a final summation current signal representing (Au₁₇×Ay₁₇+At₁₇×Ax₁₇+As₁₇×Aw₁₇)+Ab₁₇.

This final summation current signal is concurrently fed onto a current input port of iADC₁₇ which is a current-mode analog-to-digital-converter (iADC), which generates a o-bits wide digital output word Do₁₇ which is the digital representation of the D_(i)D_(o) iMACiDAC output signal (Au₁₇×Ay₁₇+At₁₇×Ax₁₇+As₁₇×Aw₁₇)+Ab₁₇.

In summary, the embodiment of D_(i)D_(o) sMACiDAC circuit illustrated in FIG. 17 processes signals in current-mode utilizing iDACs has the following benefits:

First, the disclosed D_(i)I_(o) sMACiDAC utilizing plurality of current-mode iDACs whose certain outputs can be coupled together and biased in current mode, which saves area and lowers cost, and improved performance with faster dynamic response, in part for its efficacy in performing summation in current-mode that can be accomplished by simply coupling plurality of current signals.

Second, standard iDACs or factorized or floating iDACs methods (described earlier in the disclosure) can be utilized, which saves area and reduces FETs sizes carrying lower capacitances in the iDAC's current reference network, which in turn lowers cost, reduces the size, and improves the transient response of the D_(i)D_(o) sMACiDAC that utilizes such iDACs.

Third, as noted earlier, operating in current mode has the following benefits for the disclosed D_(i)D_(o) sMACiDAC: (a) current mode is inherently fast, (b) voltage swings in current-mode signal processing are small, which enables operating with lower power supply voltage and operating at low supply voltages facilitates reducing power consumption, (c) current-mode signal processing such as addition or subtraction functions take small area and can be performed fast.

Fourth, there are no passive devices in the disclosed D_(i)D_(o) sMACiDAC of FIG. 17, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Fifth, the precision of the disclosed D_(i)D_(o) sMACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Sixth, the disclosed D_(i)D_(o) sMACiDAC of FIG. 17 can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or ±0.4%) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)D_(o) sMACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Seventh, dynamic power consumption is lower because the D_(i)D_(o) sMACiDAC by utilizing floating, factorized, or combination of floating and factorized iDACs could have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Eight, the D_(i)D_(o) sMACiDAC that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Ninth, the D_(i)D_(o) sMACiDAC that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating, factorized, or combination of floating and factorized iDACs, which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process-temperature-operation conditions variations. Accordingly, the D_(i)D_(o) sMACiDAC's temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Tenth, while digital computation is generally accurate but it may be excessively power hungry. Current-mode analog and mixed-signal computation that is disclosed here can be approximate but signal processing can be accomplished asynchronously and power consumption can be lower. Moreover, analog current errors here generally may result in degradation but (not total failures) of analog computation, which provides the end-application with approximate results to work with instead of experiencing failed results.

Eleventh, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 18—Description of FIG. 18

FIG. 18 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode Artificial Neural Network (iANN) circuit. The disclosed iANN is a mixed-signal current-mode digital-input to digital-output (D_(i)D_(o)) iANN circuit utilizing current-mode multiply-accumulate (iMAC) circuits that utilize current-mode digital-to-analog-converter (iDAC) and current-mode analog-to-digital converter (iADC) circuits.

Consider that in the FIG. 18 illustrates 3 channels of iDACs (e.g., iDACm₁₈-iDACn₁₈-iDACo₁₈, or iDACp₁₈-iDACq₁₈-iDACr₁₈, or iDACs₁₈-iDACt₁₈-iDACu₁₈, or iDACx₁₈-iDACy₁₈-iDACz₁₈, or iDACa₁₈-iDACb₁₈-iDACc₁₈, and so on) for clarity of description and illustration purposes only, but 3 channels are not a limitation of this disclosure. For example, a sea of iDACs (e.g., less than 1000 channels) can be utilized here depending on end-applications.

In FIG. 18, an iDACx₁₈ receives a reference current signal xR₁₈, a x-bits wide digital input word Dx₁₈, and generates an analog output current signal Ax₁₈. Keep in mind that the Ax₁₈ can be replicated, as illustrated in FIG. 15, and supplied to plurality of reference inputs of a respective plurality of iDACs comprising of iDACm₁₈, iDACn₁₈, and iDACo₁₈. Accordingly, an iDACm₁₈ receives a m-bits wide digital input word Dm₁₈, and generates an analog output current signal Ax₁₈×Am₁₈. An iDACn₁₈ receives a n-bits wide digital input word Dn₁₈, and generates an analog output current signal Ax₁₈×An₁₈. An iDACo₁₈ receives a o-bits wide digital input word Do₁₈, and generates an analog output current signal Ax₁₈×Ao₁₈.

An iDACy₁₈ receives a reference current signal yR₁₈, a y-bits wide digital input word Dy₁₈, and generates an analog output current signal Ay₁₈. Also, bear in mind that the Ay₁₈ can be replicated, similarly as illustrated in FIG. 15, and supplied to plurality of reference inputs of a respective plurality of iDACs comprising of iDACp₁₈, iDACq₁₈, and iDACr₁₈. Accordingly, an iDACp₁₈ receives a p-bits wide digital input word Dp₁₈, and generates an analog output current signal Ay₁₈×Ap₁₈. An iDACq₁₈ receives a q-bits wide digital input word Dq₁₈, and generates an analog output current signal Ay₁₈×Aq₁₈. An iDACr₁₈ receives a r-bits wide digital input word Dr₁₈, and generates an analog output current signal Ay₁₈×Ar₁₈.

An iDACz₁₈ receives a reference current signal zR₁₈, a z-bits wide digital input word Dz₁₈, and generates an analog output current signal Az₁₈. Also, notice that the Az₁₈ can be replicated, similarly as illustrated in FIG. 15, and supplied to plurality of reference inputs of a respective plurality of iDACs comprising of iDACs₁₈, iDACt₁₈, and iDACu₁₈. Accordingly, an iDACs₁₈ receives a s-bits wide digital input word Ds₁₈, and generates an analog output current signal Az₁₈×As₁₈. An iDACt₁₈ receives a t-bits wide digital input word Dt₁₈, and generates an analog output current signal Az₁₈×At₁₈. An iDACu₁₈ receives a u-bits wide digital input word Du₁₈, and generates an analog output current signal Az₁₈×Au₁₈.

A bias iDACa₁₈ receives a reference current signal aR₁₈, a a-bits wide digital input word Da₁₈, and generates an analog output current signal Aa₁₈. A bias iDACb₁₈ receives a reference current signal bR₁₈, a b-bits wide digital input word Db₁₈, and generates an analog output current signal Ab₁₈. A bias iDACc₁₈ receives a reference current signal cR₁₈, a c-bits wide digital input word Dc₁₈, and generates an analog output current signal Ac₁₈.

The outputs of iDACm₁₈, iDACp₁₈, and iDACs₁₈ are coupled together and coupled with output of bias iDACa₁₈ which generates the summation analog current signal that is a multiply-accumulate analog current signal Ia_(iMAC)=[Aa₁₈+(Ax₁₈×Am₁₈+Ay₁₈×Ap₁₈+Az₁₈×As₁₈)] which can be independently digitized through an iADC or can be fed onto an input of a current mux (iMux) as depicted by iMUX₁₈.

Also, the outputs of iDACn₁₈, iDACq₁₈, and iDACt₁₈ are coupled together and coupled with output of bias iDACb₁₈ which generates the summation analog current signal that is another multiply-accumulate analog current signal Ib_(iMAC)=[Ab₁₈+(Ax₁₈×An₁₈+Ay₁₈×Aq₁₈+Az₁₈×At₁₈)] which can be independently digitized through another input of a current mux (iMux) as depicted by iMUX₁₈.

Moreover, the outputs of iDACn₁₈, iDACq₁₈, and iDACt₁₈ are coupled together and coupled with output of bias iDACb₁₈ which generates the summation analog current signal that is another multiply-accumulate analog current signal IC_(iMAC) [Ab₁₈+(Ax₁₈×An₁₈+Ay₁₈×Aq₁₈+Az₁₈×At₁₈)] which can be independently digitized through an iADC or can be fed onto another input of a current mux (iMux) as depicted by iMUX₁₈.

A current mux (such as FIG. 18 illustration of an iMUX₁₈ which is a 3-to-1 channel analog current mux) with plurality of inputs and one output can consecutively select with (S₁₈) and steer the multiply-accumulate analog current signals Ia_(iMAC), Ib_(iMAC), and IC_(iMAC) into iADC₁₈ to digitize the said multiply-accumulate analog current signals at its output D₁₈.

Notice that there is flexibility in programming the FIG. 18's iDACs reference signals (e.g., xR₁₈, yR₁₈, zR₁₈, aR₁₈, bR₁₈, cR₁₈, R₁₈) such as programming xR₁₈=yR₁₈=zR₁₈. Also, depending on the end-application requirements, to save area and current consumption, one bias iDAC can be arranged with its output replicated and supplied to plurality of multiply-accumulate analog current nodes, instead of utilizing plurality of bias iDACs (e.g., iDACa₁₈, iDACb₁₈, and iDACc₁₈). Moreover, the reference signal of the iADC₁₈ can be programmed to accommodate the zero to full scale current signals of the plurality of multiply-accumulate analog currents (e.g., Ia_(iMAC), Ib_(iMAC), and IC_(iMAC)).

In summary, the current-mode Artificial Neural Network (iANN) circuit in illustrated FIG. 18 is a mixed-signal digital-input to digital-output (D_(i)D_(o)) iANN that is arranged with plurality of current-mode multiply-accumulate (iMAC) circuits, wherein the iMAC circuits utilize current-mode digital-to-analog-converter (iDAC) and current-mode analog-to-digital converter (iADC) circuits. As such, the disclosed iANN has the following benefits:

First, in part, because summation is a key part of iANN that are arranged with iMAC circuits that utilize iDAC circuits, a simple coupling of iDAC current outputs generates a summation signal in a small area, asynchronously, and at high speeds (since current mode signal processing is inherently fast.

Second, standard iDACs or factorized or floating iDACs methods (described earlier in the disclosure) can be utilized here, which saves area and reduces FETs sizes carrying lower capacitances in the iDAC's current reference network, which in turn lowers cost, reduces the size, and improves the transient response of the iANN.

Third, as noted earlier, operating the iANN in current-mode reduces voltage swings, which enables operating with lower power supply voltage and operating at low supply voltages facilitates reducing power consumption. Additionally, the flexibility to run the CMOSFETs in subthreshold enables the iDACs (and hence the iANN) to operate with ultra-low currents, even lower power supplies, and ultra-low power consumption suitable for mobile applications.

Fourth, there are no passive devices in the disclosed iANN, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Fifth, the precision of the disclosed iANN can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Sixth, the iANN can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or +0.4%) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed iANN can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Seventh, dynamic power consumption is lower because iANN can utilize floating, factorized, or combination of floating and factorized iDACs which have smaller sized FETs (in the input-to-output transfer function network) which would consume less dynamic current to drive smaller FET devices during digital input code transitions.

Eight, the iANN that utilizes floating iDAC can be arranged free of clock, suitable for asynchronous (clock free) computation.

Ninth, the iANN that utilizes same type of MOSFET current sources and MOSFET switches in the respective floating, factorized, or combination of floating and factorized iDACs, which are symmetric, matched, and scaled. Such arrangement facilitates device parameters to track each other over process-temperature-operation conditions variations. Accordingly, the iANN temperature coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced.

Tenth, while digital computation is generally accurate but it may be excessively power hungry. Methods of current-mode analog and mixed-signal computation that is disclosed here can be approximate but signal processing can be accomplished asynchronously and power consumption can be lower. Moreover, analog current errors here generally may result in degradation but (not total failures) of analog computation, which provides the end-application with approximate results to work with instead of experiencing failed results.

Eleventh, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 19—Description of FIG. 19

FIG. 19 is a simplified circuit schematic diagram illustrating an embodiment of a multi-channel mixed-signal current-mode digital-to-analog converter (iDAC) utilizing the multiple-channel data-converter method.

One of the objectives of this disclosure is to make multiple-channel (sea of) iDACs with medium-to-high (6-bits to 12-bits) resolution that is small size and low cost. Low cost and small size of sea of iDACs have broad applications, including in machine learning (ML) and artificial intelligence (AI) applications wherein 1000s of iDACs may be utilized as part of for example the multiply-accumulate (MAC) function.

Another objective of this disclosure is to make multiple-channel (sea of) current mode analog to digital converters (iADCs). Similarly, low cost and small size of sea of iADCs have broad base of applications including in ML & AI applications where a plurality of sums of the outputs of a plurality of current-mode MACs (iMACs) may need to be converted to digital signals. The first segments of this section describe iDACs.

For clarity of description, FIG. 19 illustrates only 4-channels of 6-bit iDACs, and this illustration is not a limitation of the disclosure here. Depending on application requirements, the disclosed multiple-channel data-converter method could have 1000s of channels where each iDAC can, for example, have 16-bits of resolution.

Note that for example, in a conventional 6-bit binary iDACs with an LSB current weight of i, binary current source network comprising of current sources (2⁶⁻¹)i, (2₅₋₁)i, (2⁴⁻¹)i, (2³⁻¹)i, (2²⁻¹)i, and (2¹⁻¹)i are generated by arranging plurality of paralleled current reference cells. Generally, each current cell is a non-minimum W/L=X carrying an LSB current weight (e.g., i). In a conventional iDAC, identical cells having a 1X (W/L size carrying an LSB current weight of i) are, for example, replicated in parallel 32X, 16X, 8X, 4X, 2X, and 1X times to generate the respective binary reference currents of 32i, 16i, 8i, 4i, 2i, and 1i. Utilizing identical current cells (which dominate the accuracy of an iDACs and that are arranged in parallel to generate the respective binary reference currents) improves the matching between respective binary weighted reference currents, and optimizes the iDAC's accuracy.

As an example, in a conventional 6-bit iDAC the binary weighted currents would require 127 LSB current cells. A conventional 8-bit iDAC's binary weighted currents would require 255 LSB current cells. Thus, a 16-channel conventional 6-bit iDAC array would require about 127×16=2032 LSB current cells and an 8-bit iDAC array would require about 255×16=4080 LSB current cells. In order to attain medium to high accuracy targets for the iDACs, the LSB current cells need to be patterned with non-minimum (larger) size W and L, and as such the numerus LSB current cells which are combined in parallel, dominate the area of the iDACs. As such, conventional iDACs with medium to large resolution are generally prohibitively large and impractical for AI and ML applications that require (numerous channels) sea of iDACs.

Operating in current mode, an iDAC is generally fast. However, because of the numerous paralleled LSB current cells required in conventional medium to high resolution iDACs, the combined parasitic and stray capacitance associated with the array of paralleled LSB current cells would slow down the circuit. For example, in an 8-bit iDAC, the 8^(th) bit or the MSB is comprised of 128X parallel LSB current cells and 7^(th) bit is comprised of 64X parallel LSB current cells and so on. Besides occupying large die area, the large size of paralleled current cells can slow down the dynamic response of the conventional iDACs, cause glitch into the iDAC's analog output as well as the power supplier, and increase dynamic current consumption. Consequently, the overall dynamic performance of the iDACs and AI and ML end-system could be degraded.

The disclosed invention, utilizing a multiple-channel data-converter method, substantially reduces the number of the current cells (and thereby minimizes the area of the disclosed iDACs) which makes feasible utilizing sea of the disclosed iDACs with a low cost. Moreover, plurality of the disclosed iDACs with substantially fewer current cells, lowers the combined associated parasitic and stray capacitance associated with current reference cells, which improves the disclosed iDAC's dynamic response, lowers glitch, lowers digital injections into power supplies, and reduces the disclosed iDAC's dynamic power consumption.

A multiple-channel data-converter method disclosed here arranges a plurality of n-bit iDACs, wherein each of the iDACs is comprised of a voltage controlled current sources (VCCS) to generate each iDAC's binary weighted currents. With i representing an LSB current weight, the multiple-channel data-converter method utilizes a reference bias network (RBN₁₉) that generates a sequence of individual binary weighted reference bias currents from (2^(n-1))i to (2¹⁻¹)i that are inputted to a sequence of current controlled voltage sources (CCVS). In turn, the sequences of CCVSs generate a sequence of reference bias voltage buses that correspond to the sequence of binary weighted reference bias currents (2^(n-1))i to (2¹⁻¹)i. The respective output ports of CCVSs, which are a sequence of reference bias voltage busses are coupled to the input of the sequence of the respective plurality of iDACs' VCCSs, that correspond to the respective binary weighted reference bias currents from (2^(n-1))i to (2¹⁻¹)i.

By utilizing the multiple-channel data-converter method, the reference current network of an iADC or that of a plurality of iADCs can also be supplied with sequence of reference bias voltage buses that can bias the sequence of binary weighted reference bias currents (2^(n-1))i to (2¹⁻¹)i of the iADC or the plurality of iADCs. As such, the multiple-channel data-converter method enables decoupling the weight of a current source from the scaling of the size current source node capacitances of the iADC's current reference networks. This trait, beside saving on die area, can substantially reduce node capacitance along the iADC's signal paths which can speed up the iADC (e.g., the larger the W/L size of a FET current source the larger its capacitance and the slower the node).

Consider that the multiple-channel data-converter method can also be arranged such that a RBN would generate a sequence of individual reference bias currents that are non-linear (e.g., square or logarithmic) where the sequence of individual reference bias currents can then bias the current reference networks (transfer function) for multiple-channels of non-linear iDACs, wherein as a result each of the non-liner iDAC's current reference network would follow a non-linear (e.g., square or logarithmic) digital input to analog current output transfer function.

For example, if a RBN is programmed to approximate a logarithmic transfer function, then a pair of iDACs (e.g., iDAC_(log X) and iDAC_(log Y)) whose reference current networks are biased from the logarithmic RBN can each generate logarithmic outputs in response to their digital inputs (e.g., D_(X), and D_(Y)). Coupling the outputs of the pair of logarithmic iDAC_(X) and iDAC_(Y) would generate a current output that is an analog representation of the product of D_(log X) and D_(log Y) in the logarithmic domain (i.e., analog current representation of log[D_(X)×D_(Y)]. This can be a cost-performance effective arrangement to perform, for example, 1000s of multiplications on one IC by utilizing plurality of pairs of logarithmic iDACs (whose digital input to analog output transfer functions are programmed logarithmically), wherein each logarithmic iDAC can have small reference current network that is biased from the same logarithmic RBN.

An alternative example could be to program a RBN that follows an approximate square function. As such a pair of square iDACs (e.g., iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ ) whose reference current networks are biased from the square RBN. Accordingly, each pair of iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ can generate square outputs in response to the summation and subtraction of their respective digital inputs (e.g., D_(X)+D_(Y), and D_(Y)−D_(Y)). Bear in mind that multiplication can be performed by a quarter square procedure, wherein (X+Y)²−(X−Y)²=4×X×Y. Therefore, by subtracting the outputs of the pair of iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ , we can generate a current output that is an analog representation of the product of D_(X) and D_(Y) times a scale factor (e.g., scale factor=4). The subtraction operation in current mode can be accomplished cost-performance effectively by feeding the iDAC_((x+y)) ₂ and iDAC_((x−y)) ₂ current outputs to the input port and output port of a current mirror, respectively. This also can be a cost-performance effective arrangement to perform, for example, 1000s of multiplications in one IC by utilizing plurality of pairs of square iDACs (wherein each of the iDAC's digital input to analog output transfer functions are programmed squarely), wherein each square iDAC has a small reference current network that is biased from the same square RBN. FIG. 42 illustrates atypical simulations of a square iDAC's input-output waveform and linearity, which will be described later.

As noted earlier, for clarity of description, FIG. 19 illustrates an embodiment of the multiple-channel data-converter method with a 4-channels of iDACs wherein each iDAC has 6-bits of resolution. Here, the four channels of iDACs are iDACa₁₉, iDACb₁₉, iDACc₁₉, and iDACd₁₉, whose current source networks are biased via reference bias network (RBN₁₉) circuit.

In FIG. 19, a RBN₁₉ generates a sequence of individual binary weighted reference bias currents as follows: P32 r ₁₉ operating at I_(D) of (2⁶⁻¹)×i=32i; P16 r ₁₉ operating at I_(D) of (2⁵⁻¹)×i=16i; P8 r ₁₉ operating at I_(D) of (2⁴⁻¹)×i=8i; P4 r ₁₉ operating at I_(D) of (2³⁻¹)×i=4i; P2 r ₁₉ operating at I_(D) of (2²⁻¹)×i=2i; and P1 r ₁₉ operating at I_(D) of (2¹⁻¹)×i=1i. In the embodiment of FIG. 19, RBN₁₉ is comprised of a sequence of CCVS which are implemented as a sequence of diode connected NMOSFETs (N32 r ₁₉, N16 r ₁₉, N8 r ₁₉, N4 r ₁₉, N2 r ₁₉, and N1 r ₁₉) whose gate and drain ports are coupled together, wherein each NMOSFET is scaled with a W/L=1X. Accordingly, the sequence of binary weighted reference bias currents I32 r ₁₉ to I1 r ₁₉ are inputted to the diode connected NMOSFETs (CCVS) which generate a sequence of (gate-to-source) reference bias voltages from reference bias voltage bus V32 r ₁₉ to reference bias voltage bus V1 r ₁₉ as follows: I_(D) of P32 r ₁₉=32i is inputted to the (drain-gate ports of the) diode connected N32 r ₁₉ to generate a reference bias bus voltage of V32 r ₁₉; I_(D) of P16 r ₁₉=16i is inputted to the diode connected N16 r ₁₉ to generate a reference bias bus voltage of V16 r ₁₉; I_(D) of P8 r ₁₉=8i is inputted to the diode connected N8 r ₁₉ to generate a reference bias bus voltage of V8 r ₁₉; I_(D) of P4 r ₁₉=4i is inputted to the diode connected N4 r ₁₉ to generate a reference bias bus voltage of V4 r ₁₉; I_(D) of P2 r ₁₉=2i is inputted to the diode connected N2 r ₁₉ to generate a reference bias bus voltage of V2 r ₁₉; and I_(D) of P1 r ₁₉=1i is inputted to the diode connected N1 r ₁₉ to generate a reference bias bus voltage of V1 r ₁₉.

The iDACa₁₉ receives a digital input word Da₁₉ that is a=6 bits wide and generates a positive and a negative output currents I_(a) ₁₉ ⁺ and I_(a) ₁₉ ⁻, respectively. Here, N32 a ₁₉ which is scaled with W/L=1X (and functioning as iDACa₁₉'s 6^(th) bit's VCCC) receives the reference bias bus voltage V32 r ₁₉ at its gate port. As such, I_(D) of N32 a ₁₉ mirrors that of the N32 r ₁₉, and generates ID=32i for iDACa₁₉ which is steered onto either I_(a) ₁₉ ⁺ or I_(a) ₁₉ ⁻ in accordance with (the MSB or) the 6^(th) bit's polarity of the Da₁₉ word. The N16 a ₁₉ which is also scaled with W/L=1X (and functioning as iDACa₁₉'s 5^(th) bit's VCCC) receives the reference bias bus voltage V16 r ₁₉ at its gate port. As such, I_(D) of N16 a ₁₉ mirrors that of the N16 r ₁₉, and generates I_(D)=16i for iDACa₁₉ which is steered onto either I_(a) ₁₉ ⁺ or I_(a) ₁₉ ⁻ in accordance with the 5^(th) bit's polarity of the Da₁₉ word. The N8 a ₁₉ is also scaled with W/L=1X (and functioning as iDACa₁₉'s 4^(th) bit's VCCC) receives the reference bias bus voltage V8 r ₁₉ at its gate port. As such, I_(D) of N8 a ₁₉ mirrors that of the N8 r ₁₉, and generates I_(D)=8i for iDACa₁₉ which is steered onto either I_(a) ₁₉ ⁺ or I_(a) ₁₉ ⁻ in accordance with the 4^(th) bit's polarity of the Da₁₉ word. The N4 a ₁₉ which is also scaled with W/L=1X (and functioning as iDACa₁₉'s 3^(rd) bit's VCCC) receives the reference bias bus voltage V4 r ₁₉ at its gate port. As such, I_(D) of N4 a ₁₉ mirrors that of the N4 r ₁₉, and generates I_(D)=4i for iDACa₁₉ which is steered onto either I_(a) ₁₉ ⁺ or I_(a) ₁₉ ⁻ in accordance with the 3^(rd) bit's polarity of the Da₁₉ word. The N2 a ₁₉ which is also scaled with W/L=1X (and functioning as iDACa₁₉'s 2^(nd) bit's VCCC) receives the reference bias bus voltage V2 r ₁₉ at its gate port. As such, I_(D) of N2 a ₁₉ mirrors that of the N2 r ₁₉, and generates I_(D)=2i for iDACa₁₉ which is steered onto either I_(a) ₁₉ ⁺ or I_(a) ₁₉ ⁻ in accordance with the 2^(nd) bit's polarity of the Da₁₉ word. The N1 a ₁₉ which is also scaled with W/L=1X (and functioning as iDACa₁₉'s 1^(st) bit's VCCC) receives the reference bias bus voltage V1 r ₁₉ at its gate port. As such, I_(D) of N1 a ₁₉ mirrors that of the N1 r ₁₉, and generates I_(D)=1i for iDACa₁₉ which is steered onto either I_(a) ₁₉ ⁺ or I_(a) ₁₉ ⁻ in accordance with the 1^(st) bit's polarity of the Da₁₉ word.

The iDACb₁₉ receives a digital input word Db₁₉ that is b=6 bits wide and generates a positive and a negative output currents I_(b) ₁₉ ⁺ and I_(b) ₁₉ ⁻, respectively. Here, N32 b ₁₉ which is scaled with W/L=1X (and functioning as iDACb₁₉'s 6^(th) bit's VCCC) receives the reference bias bus voltage V32 r ₁₉ at its gate port. As such, I_(D) of N32 b ₁₉ mirrors that of the N32 r ₁₉, and generates ID=32i for iDACb₁₉ which is steered onto either I_(b) ₁₉ ⁺ or I_(b) ₁₉ ⁻ in accordance with (the MSB or) the 6^(th) bit's polarity of the Db₁₉ word. The N16 b ₁₉ which is also scaled with W/L=1X (and functioning as iDACb₁₉'s 5^(th) bit's VCCC) receives the reference bias bus voltage V16 r ₁₉ at its gate port. As such, I_(D) of N16 b ₁₉ mirrors that of the N16 r ₁₉, and generates I_(D)=16i for iDACb₁₉ which is steered onto either I_(b) ₁₉ ⁺ or I_(b) ₁₉ ⁻ in accordance with the 5^(th) bit's polarity of the Db₁₉ word. The N8 b ₁₉ which is also scaled with W/L=1X (and functioning as iDACb₁₉'s 4^(th) bit's VCCC) receives the reference bias bus voltage V8 r ₁₉ at its gate port. As such, I_(D) of N8 b ₁₉ mirrors that of the N8 r ₁₉, and generates I_(D)=8i for iDACb₁₉ which is steered onto either I_(b) ₁₉ ⁺ or I_(b) ₁₉ ⁻ in accordance with the 4^(th) bit's polarity of the Db₁₉ word. The N4 b ₁₉ which is also scaled with W/L=1X (and functioning as iDACb₁₉'s 3^(rd) bit's VCCC) receives the reference bias bus voltage V4 r ₁₉ at its gate port. As such, I_(D) of N4 b ₁₉ mirrors that of the N4 r ₁₉, and generates I_(D)=4i for iDACb₁₉ which is steered onto either I_(b) ₁₉ ⁺ or I_(b) ₁₉ ⁻ in accordance with the 3^(rd) bit's polarity of the Db₁₉ word. The N2 b ₁₉ which is also scaled with W/L=1X (and functioning as iDACb₁₉'s 2^(nd) bit's VCCC) receives the reference bias bus voltage V2 r ₁₉ at its gate port. As such, I_(D) of N2 b ₁₉ mirrors that of the N2 r ₁₉, and generates I_(D)=2i for iDACb₁₉ which is steered onto either I_(b) ₁₉ ⁺ or I_(b) ₁₉ ⁻ in accordance with the 2^(nd) bit's polarity of the Db₁₉ word. The N1 b ₁₉ which is also scaled with W/L=1X (and functioning as iDACb₁₉'s 1^(st) bit's VCCC) receives the reference bias bus voltage V1 r ₁₉ at its gate port. As such, I_(D) of N1 b ₁₉ mirrors that of the N1 r ₁₉, and generates I_(D)=1i for iDACb₁₉ which is steered onto either I_(b) ₁₉ ⁺ or I_(b) ₁₉ ⁻ in accordance with the 1^(st) bit's polarity of the Db₁₉ word.

The iDACc₁₉ receives a digital input word Dc₁₉ that is c=6 bits wide and generates a positive and a negative output currents I_(c) ₁₉ ⁺ and I_(c) ₁₉ ⁻, respectively. Here, N32 c ₁₉ which is scaled with W/L=1X (and functioning as iDACc₁₉'s 6^(th) bit's VCCC) receives the reference bias bus voltage V32 r ₁₉ at its gate port. As such, I_(D) of N32 c ₁₉ mirrors that of the N32 r ₁₉, and generates ID=32i for iDACc₁₉ which is steered onto either I_(c) ₁₉ ⁺ or I_(c) ₁₉ ⁻ in accordance with (the MSB or) the 6^(th) bit's polarity of the Dc₁₉ word. The N16 c ₁₉ which is also scaled with W/L=1X (and functioning as iDACc₁₉'s 5^(th) bit's VCCC) receives the reference bias bus voltage V16 r ₁₉ at its gate port. As such, I_(D) of N16 c ₁₉ mirrors that of the N16 r ₁₉, and generates I_(D)=16i for iDACc₁₉ which is steered onto either I_(c) ₁₉ ⁺ or I_(c) ₁₉ ⁻ in accordance with the 5^(th) bit's polarity of the Dc₁₉ word. The N8 c ₁₉ which is also scaled with W/L=1X (and functioning as iDACc₁₉'s 4^(th) bit's VCCC) receives the reference bias bus voltage V8 r ₁₉ at its gate port. As such, I_(D) of N8 c ₁₉ mirrors that of the N8 r ₁₉, and generates I_(D)=8i for iDACc₁₉ which is steered onto either I_(c) ₁₉ ⁺ or I_(c) ₁₉ ⁻ in accordance with the 4^(th) bit's polarity of the Dc₁₉ word. The N4 c ₁₉ which is also scaled with W/L=1X (and functioning as iDACc₁₉'s 3^(rd) bit's VCCC) receives the reference bias bus voltage V4 r ₁₉ at its gate port. As such, I_(D) of N4 c ₁₉ mirrors that of the N4 r ₁₉, and generates I_(D)=4i for iDACc₁₉ which is steered onto either I_(c) ₁₉ ⁺ or I_(c) ₁₉ ⁻ in accordance with the 3^(rd) bit's polarity of the Dc₁₉ word. The N2 c ₁₉ which is also scaled with W/L=1X (and functioning as iDACc₁₉'s2^(nd) bit's VCCC) receives the reference bias bus voltage V2 r ₁₉ at its gate port. As such, I_(D) of N2 c ₁₉ mirrors that of the N2 r ₁₉, and generates I_(D)=2i for iDACc₁₉ which is steered onto either I_(c) ₁₉ ⁺ or I_(c) ₁₉ ⁻, in accordance with the 2^(nd) bit's polarity of the Dc₁₉ word. The N1 c ₁₉ which is also scaled with W/L=1X (and functioning as iDACc₁₉'s 1^(st) bit's VCCC) receives the reference bias bus voltage V1 r ₁₉ at its gate port. As such, I_(D) of N1 c ₁₉ mirrors that of the N1 r ₁₉, and generates I_(D)=1i for iDACc₁₉ which is steered onto either I_(c) ₁₉ ⁺ or I_(c) ₁₉ ⁻ in accordance with the 1^(st) bit's polarity of the Dc₁₉ word.

Finally, iDACd₁₉ receives a digital input word Dd₁₉ that is d=6 bits wide and generates a positive and a negative output currents I_(d) ₁₉ ⁺ and I_(d) ₁₉ ⁻, respectively. Here, N32 d ₁₉ which is scaled with W/L=1X (and functioning as iDACd₁₉'s 6^(th) bit's VCCC) receives the reference bias bus voltage V32 r ₁₉ at its gate port. As such, I_(D) of N32 d ₁₉ mirrors that of the N32 r ₁₉, and generates I_(D)=32i for iDACd₁₉ which is steered onto either I_(d) ₁₉ ⁺ or I_(d) ₁₉ ⁻ in accordance with (the MSB or) the 6^(th) bits polarity of the Dd₁₉ word. The N16 d ₁₉ which is also scaled with W/L=1X (and functioning as iDACd₁₉'s 5^(th) bit's VCCC) receives the reference bias bus voltage V16 r ₁₉ at its gate port. As such, I_(D) of N16 d ₁₉ mirrors that of the N16 r ₁₉, and generates I_(D)=16i for iDACd₁₉ which is steered onto either I_(d) ₁₉ ⁺ or I_(d) ₁₉ ⁻ in accordance with the 5^(th) bit's polarity of the Dd₁₉ word. The N8 d ₁₉ which is also scaled with W/L=1X (and functioning as iDACd₁₉'s 4^(th) bit's VCCC) receives the reference bias bus voltage V8 r ₁₉ at its gate port. As such, I_(D) of N8 d ₁₉ mirrors that of the N8 r ₁₉, and generates I_(D)=8i for iDACd₁₉ which is steered onto either I_(d) ₁₉ ⁺ or I_(d) ₁₉ ⁻ in accordance with the 4^(th) bit's polarity of the Dd₁₉ word. The N4 d ₁₉ which is also scaled with W/L=1X (and functioning as iDACd₁₉'s 3^(rd) bit's VCCC) receives the reference bias bus voltage V4 r ₁₉ at its gate port. As such, I_(D) of N4 d ₁₉ mirrors that of the N4 r ₁₉, and generates I_(D)=4i for iDACd₁₉ which is steered onto either I_(d) ₁₉ ⁺ or I_(d) ₁₉ ⁻ in accordance with the 3^(rd) bit's polarity of the Dd₁₉ word. The N2 d ₁₉ which is also scaled with W/L=1X (and functioning as iDACd₁₉'s 2^(nd) bit's VCCC) receives the reference bias bus voltage V2 r ₁₉ at its gate port. As such, I_(D) of N2 d ₁₉ mirrors that of the N2 r ₁₉, and generates I_(D)=2i for iDACd₁₉ which is steered onto either I_(d) ₁₉ ⁺ or I_(d) ₁₉ ⁻ in accordance with the 2^(nd) bit's polarity of the Dd₁₉ word. The N1 d ₁₉ which is also scaled with W/L=1X (and functioning as iDACd₁₉'s 1^(st) bit's VCCC) receives the reference bias bus voltage V1 r ₁₉ at its gate port. As such, I_(D) of N1 d ₁₉ mirrors that of the N1 r ₁₉, and generates I_(D)=1i for iDACd₁₉ which is steered onto either I_(d) ₁₉ ⁺ or I_(d) ₁₉ ⁻ in accordance with the 1^(st) bit's polarity of the Dd₁₉ word.

In the embodiment of FIG. 19, the multiple-channel data-converter method generates the binary weighted reference currents for plurality of iDACs (iDACa₁₉, iDACb₁₉, iDACc₁₉, and iDACd₁₉) via their respective sequence of current source MOSFETs N32 ₁₉, N16 ₁₉, N8 ₁₉, N4 ₁₉, N2 ₁₉, and N1 ₁₉. These MOSFET are only scaled with W/L=1X, which results in significant area savings. For a plurality of 6-bit iDACs (setting aside RBN₁₉'s area), every incremental iDAC utilizing the multiple-channel data-converter method requires 6 of 1X size current sources, which is less than 10 times the area as compared to 64 of 1X size current sources required for a conventional 6-bit iDAC which requires a binary scaling of the MOSFET based current source network. Moreover, for a plurality of 8-bit iDACs (setting aside RBN₁₉'s area), every incremental 8-bit iDAC utilizing the multiple-channel data-converter method requires 8 of 1X size current sources, which is less than 25 times the area as compared to 256 of 1X size current sources required for a conventional 8-bit iDAC which requires binary scaled MOSFETs for its current source network.

Moreover, dynamic response of the iDACs is improved here because the disclosed multiple-channel data-converter method substantially reduces the number of MOSFETs that form the iDAC's binary weighted current source network. Fewer MOSFETs result in substantially less capacitance along the iDAC's signal paths, which in turn improves the dynamic response of the iDACs, including reducing glitch and lowering dynamic power consumption.

As indicated earlier, the MOSFETs that form a conventional iDAC's binary weighted current sources need to be sized with meaningfully larger W and L than minimum geometry for better matching and thereby attaining higher accuracy iDACs. Given their larger W/L sizes, a conventional iDAC's binary weighted current source network, dominate the area of such iDAC. Utilizing the multiple-channel data-converter method, accuracy is roughly comparable with that of a conventional iDAC by keeping the larger (non-minimum MOSFETs) W/L size of the iDAC's current source. However, multiple-channel data-converter method reduces the number of non-minimum MOSFET utilizes in the iDAC's current sources, providing meaningful die size reduction and cost savings.

Bear in mind that the multiple-channel data-converter method can be utilized for a portion of an iDAC's current source network (e.g., MSB bank) and conventional binary weighted iDAC can be utilized for the remainder portion (e.g., LSB bank) of iDAC's current source network. Also consider that the iDAC's current sources can utilize cascoded MOSFETs to attain higher output impedance, and the cascoded MOSFETs can be biased with an independent bias bus, that feeds plurality of iDACs, similar in arrangement to those generated by RBN₁₉ circuit. Also, notice that for example in applications requiring 8 or 16 or 32 channels iDACs, the area savings by utilize g the multiple-channel data-converter method significantly outweighs the additional area due to RBN₁₉.

In summary, the current-mode multiple-channel data-converter method that is illustrated in the embodiment of FIG. 19 discloses integrating multiple mid-to-high resolution current-mode data-converters including iDACs with the following benefits:

First, substantial area savings is achieved by utilizing the disclosed multiple-channel data-converter method, especially in applications requiring sea of iDACa in a chip. The area savings is achieved in part because the requirement for individually weighted current sources (e.g., binary weighted or non-linearly weighted) is decoupled from requiring individually scaled current sources.

Second, the disclosed multiple-channel data-converter method substantially reduces the number of MOSFETs that form the iDAC's binary weighted current source network. Fewer MOSFETs result in substantially less capacitance along the iDAC's signal paths, which in turn improves the dynamic response of the iDACs, including reducing glitch and lowering dynamic power consumption.

Third, despite area savings attainable by the disclosed multiple-channel data-converter method, the accuracy of individual iDACs is not substantially deterred. All else substantially equal, the matching of MOSFETs that form a data-converter's reference current network dominate the accuracy of a current-mode data-converter. The scaled MOSFETs in both the (central) reference bias network (RBN) match the 1X scaled MOSFETs in each of the iDAC because they are all arranged with the same (non-minimum W/L size) cell layout and same orientation.

Fourth, as noted earlier, operating the disclosed multiple-channel data-converter method in current-mode is inherently fast. Moreover, operating in current mode reduces voltage swings along the pertinent signal paths, which enables operating the iDACs with lower power supply voltages. Operating the data-converters at low power supply voltages facilitates reducing power consumption.

Fifth, the flexibility to run the MOSFETs in subthreshold enables the iDACs to operate with ultra-low currents, even lower power supplies, and ultra-low power consumption suitable for mobile applications.

Sixth, there are no passive devices in the disclosed iDACs, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Seventh, the disclosed multiple-channel data-converter method can be arranged free of clock, suitable for asynchronous (clock free) computation.

Eighth, the disclosed multiple-channel data-converter method utilize same type of MOSFET current sources and MOSFET switches which are symmetric and matched. Such arrangement facilitates device parameters to track each other over process-temperature-operation conditions variations. Accordingly, each of the data-coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced and matched between the plurality of data-converters.

Ninth and as stated earlier, the disclosed multiple-channel data-converter method substantially reduces the number of MOSFETs that for example form the iDAC's binary weighted current source network, and as such the fewer MOSFETs can be placed closer to each other on a chip. Similarly, oriented and physically closer MOEFETs, that form the current reference of a data-converter, generally match better which in turn improves the accuracy of each of the data-converter and the matching between them in plurality of iDACs in one chip.

Tenth, besides iDACs, the multiple-channel data-converter method can be applied to iADCs as well. Generally and all else substantially equal, the larger the W/L size of a FET current source, the larger its capacitance and the slower the node, which capacitively loads an iADC's current reference networks and can substantially reduce the speed of the iADC. As noted earlier, the multiple-channel data-converter method enables decoupling the weight of a current source from the scaling of the sizes of FETs utilizing in forming the data-converter's reference current sources. By keeping each of the W/L sizes of the current source FETs the same at 1X and small for example (despite each of their binary weighted currents), the node capacitances of the iADC's reference current networks can be kept small which helps speeds up the dynamic response of the iADC. More importantly, in applications where plurality (sea of) iADCs are required, by keeping the size of the current reference network of each of the iADC small in the plurality of the iADCs, substantial die area savings can also be realized.

Eleventh, in an embodiment of the multiple-channel data-converter method wherein the central RBN is trimmed or calibrated for accuracy, the accuracy of each of the plurality of data-converters whose reference current network is biased from the same central RBN can be improved.

Twelfth, in an embodiment of the multiple-channel data-converter method wherein the central RBN is desensitized from power supply variations (e.g., by utilizing the second power supply desensitization method or the second PSR method disclosed in FIG. 40 and FIG. 41), the power supply insensitivity of each of the plurality of data-converters whose reference current network is biased from the same central RBN can be improved.

Thirteenth, the benefits of the multiple-channel data-converter method can be attained in other higher-order systems including but not limited to multipliers, multiply-accumulate (MAC), and artificial-neural-network (ANN) that utilize the multiple-channel data-converter method.

Section 20—Description of FIG. 20

FIG. 20 is a simplified circuit schematic illustrating an embodiment for a plurality-channels of mixed-mode digital-input to analog-current-output multiplier (XD_(i)I_(O)) that is multi-quadrant, wherein the XD_(i)I_(O) utilizes the multiple-channel data-converter method. The XD_(i)I_(O) of FIG. 20 (XD_(i)I_(O) ₂₀ ) utilizes an embodiment of the multiple-channel data-converter method disclosed in section 19 of this disclosure, which can save silicon area and improve iDAC's dynamic performance. The XD_(i)I_(O) ₂₀ also utilizes a multiplier power supply desensitization method (or XPSR method) that substantially desensitize XD_(i)I_(O)'s output current from power supply variations, while eliminating cascodes from current sources (which saves area).

For descriptive clarity and illustrative simplicity, the embodiment of the XD_(i)I_(O) ₂₀ that is depicted in FIG. 20 is a single channel multiplier with 4-bits (x-word digital input) by 4-bits (y-word digital input) of resolution wherein the x and y digital words are sign-magnitude formatted, but the digital input resolutions can be higher (e.g., 6-bits to 12-bits) and the digital inputs can be arranged with other formats (e.g., binary, 2's complement, binary-offset, etc.) and plurality of channels can be in the 1000s.

As presented earlier, XD_(i)I_(O) ₂₀ embodiment utilizes the multiple-channel data-converter method wherein a reference bias network (RBN₂₀) generates a sequence of reference bias currents that are mirrored onto a plurality of iDAC's current reference networks, which is described in section 19. The same RBN₂₀ can be utilized to mirror a reference current (Ir₂₀) whose value is programmed at the full-scale of Ix₂₀ and Iy₂₀.

The XD_(i)I_(O) ₂₀ is comprising of a first current-output DAC (iDAC) or iDACx₂₀ that generates an output Ix₂₀, a second current-output iDAC or iDACy₂₀ that generates an out Iy₂₀, wherein Ix₂₀, Iy₂₀, and a reference current (Ir₂₀) are inputted to a current multiplier or iMULT₂₀. The resultant analog output product of iMULT₂₀ is Io₂₀ which is a single-quadrant current output. The Io₂₀ is then inputted to a switching current mirror inverter (comprising of P1 s ₂₀, P2 s ₂₀, NoM₂₀, and NoM′₂₀) section of the iMULT₂₀ which converts the single-quadrant Io₂₀ to a multi-quadrant output ±Io₂₀, wherein the plus minus sign of Io₂₀ is controlled by the sign bits of the x and y digital input words (e.g., sign-magnitude format).

As noted earlier, the XD_(i)I_(O)'s dynamic performance is improved and silicon area is reduced by utilizing the multiple-channel data-converter method that is described in section 19 of this disclosure. A single bias reference network (RBN₂₀) is shared by biasing a plurality XD_(i)I_(O) channels, wherein each XD_(i)I_(O) is comprising of iMULT (e.g., an iMULT₂₀) and pair of iDACs (e.g., iDACx₂₀ and iDACy₂₀). Here, substantially equal 1X sized current sources in the iDAC's reference current network is biased separately by RBN₂₀ wherein each iDAC's 1X sized current source carries its respective binary weighted current, which improves dynamic performance of the iDACs and save silicon area, especially in machine learning applications were 1000s (plurality) of iDACs can be needed to perform the multiply-accumulate (MAC) functions.

Note also that the sign-magnitude logic (LOGIC₂₀) block can be shared between plurality XD_(i)I_(O) channels by inserting a plurality of latches (to store the x and y digital input words) between the LOGIC₂₀ block outputs and the plurality of current switches of the respective plurality of iDACx₂₀ and iDACy₂₀ pairs, which also saves silicon area.

Moreover, additional area is save by utilizing only one RBN₂₀ that is shared with a plurality of XD_(i)I_(O) ₂₀ , wherein the multiplier power supply desensitization method (or XPSR method) is utilized to substantially desensitize each of the XD_(i)I_(O) ₂₀ 's output currents to V_(DD) variations, while the chip area attributed to each of the XD_(i)I_(O) ₂₀ is reduced by eliminating the cascoded FETs from the current reference network of each of the iDACx₂₀ and iDACy₂₀ pairs. The XPSR method is described next.

The multiplier power supply desensitization method substantially desensitizes a multiplier from power supply variations by arranging a first ratio relationship between the first input (I_(Y)) and the reference input (I_(R)) to a multiplier wherein the I_(Y) and the I_(R) both have a substantially equivalent first dependence error (e_(dd)) to power supply variations (ΔV_(DD)) and wherein the e_(dd) cancel each other out due to the first ratio (I_(Y)/I_(R)) relationship in a multiplier. Moreover, multiplier power supply desensitization method substantially desensitizes the multiplier from ΔV_(DD) by arranging a second ratio (I_(O)/I_(X)) relationship between the output (I_(O) ²) and the second input (I_(X)) of the multiplier wherein the I_(O) and the I_(X) of the multiplier both have a substantially equivalent second dependence error (e′_(dd)) to ΔV_(DD) and wherein the e′_(dd) cancel each other out due to the I_(O)/I_(X) relationship. Also, the I_(Y)/I_(R) is substantially equalized to I_(O)/I_(X) in the multiplier, and the e_(dd) and the e′_(dd) may be substantially equal or different from one another. This means that for example e_(dd) can be zero meaning I_(Y) and I_(R) have no dependence to power supply variations, and where e′_(dd) can be finite meaning I_(O) and I_(X) have dependence to power supply variations, and vice versa. Moreover, for example, e_(dd) and e′_(dd) can be zero meaning that I_(Y), I_(R), I_(O), and I_(X) do not have dependence to power supply variations.

Another way of describing the multiplier power supply desensitization (XPSR) method is as follows: An analog multiplier input-output transfer function is I_(O)=I_(X)×I_(Y)/I_(R) or I_(O)/I_(X)=I_(Y)/I_(R), where X is x-input current, I_(Y) is y-input current, I_(R) is a reference input current representing the full scale of I_(X) and I_(Y), and I_(O) is the multiplier's output current. The multiplier power supply desensitization method arranges a multiplier where I_(O) and I_(X) can have similar dependence (error) on power supply (V_(DD)), and I_(Y) and I_(R) can have with other similar dependence (error) on V_(DD). In other words, I_(O)=i_(o) (1±e_(dd)), I_(X)=i_(x) (1±e_(dd)), I_(Y)=i_(y) (1±e′_(dd)), and I_(R)=i_(r) (1±e′_(dd)), wherein ±e_(dd) is the scale error attributed to V_(DD) variations for i_(o) and i_(x), and ±e′_(dd) is the scale error attributed to V_(DD) variations for i_(y) and i_(r). As such, a scale error term (1±e_(dd)) attributed to V_(DD) variations is canceled out in the ratio of I_(O)/I_(X). Similarly, a scale error terms (1±e′_(dd)) attributed to V_(DD) variations are canceled out in the ratio of I_(Y)/I_(R). Also, note that ±e_(dd) can be the same as or different from ±e′_(dd).

First, the XPSR method to help substantially desensitize a XD_(i)I_(O) from the dependence error of I_(Y)/I_(R) on power supply variations is described. Let's arrange the iDACy₂₀'s current switches (comprising of N4 y′ ₂₀ through N1 y′ ₂₀ and N4 y″ ₂₀ through N1 y″ ₂₀) with low on resistance. Also, let's arrange V1 y ₂₀=V_(DD)−Vgs_(PM0S) (e.g., placing a diode connected FET between V_(DD) and V1 y ₂₀, which can help lower iDAC's glitch and improves settling time). One of the current outputs (Iy₂₀) of iDACy₂₀ that is coupled with the y-input port of iMULT₂₀ has a bias voltage of V_(DD) minus a PMOS's gate-to-source voltage (V_(gs) of PyM₂₀). Thus, the drain-to-source voltage (V_(DS)) of FETs in the current reference network of iDACy₂₀ (comprising of N4 y ₂₀ through N1 y ₂₀) is V_(DD)−V_(gs). Be mindful that early voltage (V_(A)) in FETs can cause I_(DS) dependence (error) on power supply variations, wherein such I_(DS) dependence (error) can be reduced by cascading FETs at the expense of increasing silicon area. Accordingly, the iMULT₂₀'s current input Iy₂₀ is arranged in this disclosure to have a dependence error as a function of V_(DD) variations. Similarly, the reference current input (Ir₂₀) of iMULT₂₀ that is supplied by an NMOS (i.e., NrM₂₀) has a VDS that is also V_(DD) minus V_(gs) of PrM₂₀. As such, the current input that is Ir₂₀ of iMULT₂₀ is arranged to have a substantially similar dependence error as a function of V_(DD) variations to that of Iy₂₀. Hence, the I_(Y) and I_(R) have the same depended error on V_(DD) variations that is substantially rejected, without the need for cascode FETs (which saves silicon area) in light of iMULT₂₀ ratio relationship between them that is I_(Y)/I_(R).

Next, the XPSR method to help substantially desensitize a XD_(i)I_(O) from the dependence error of I_(O)/I_(X) on power supply variations is described. Similar to the y-channel, let's arrange the iDACx₂₀'s current switches (comprising of N4 x′ ₂₀ through N1 x′ ₂₀ and N4 x″ ₂₀ through N1 x″ ₂₀) with low on resistance. Similarly, let's arrange V1 x ₂₀=V_(SS)+Vgs_(NMOS) (which can help lower iDAC's glitch and improves settling time). One of the current outputs (Ix₂₀) of iDACx₂₀ that is coupled with the x-input port of iMULT₂₀ has a bias voltage of V_(SS) plus a NMOS's gate-to-source voltage (V_(gs) of NxM₂₀). Thus, the drain-to-source voltage (V_(DS)) of FETs in the current reference network of iDACx₂₀ (comprising of N4 x ₂₀ through N1 x ₂₀) is V_(SS)+V_(gs). As such, the iMULT₂₀'s current input that is Ix₂₀ is arranged in this disclosure to have a dependence error as a function of V_(SS) variations. By biasing Vxy₂₀=V_(SS)+Vgs_(NMOS), then depending on sign (or MSB) of the x or y digital input word, the bias voltage of the current input (Io₂₀) of iMULT₂₀ would be subject to either V_(gs) of NoM₂₀ or that of NoM′₂₀, which are both NMOS. Thus, the iMULT₂₀'s current output that is Io₂₀ is arranged in this disclosure to have the same dependence error as a function of V_(SS) variations to that of Ix₂₀. Hence, the I_(O) and I_(X) have the same depended error (on V_(SS) variations) that is substantially rejected in light of iMULT₂₀ ratio relationship between them that is I_(O)/I_(X).

Bear in mind that for machine learning applications where plurality (or sea) of XD_(i)I_(O) channels are required, the reference bias network (RBN) and LOGIC sections can be shared amongst plurality (or sea) of XD_(i)I_(O) channels. The iDAC's current reference network can provide binary weighted currents without requiring the current sources to be sized in binary weighted arrangement which saves significant area in each iDAC utilized in XD_(i)I_(O). Further area savings are realized by eliminating the cascoded FETs from the current (mirror) reference network of each iDAC utilized in XD_(i)I_(O), while utilizing the PSR method substantially desensitizes the XD_(i)I_(O) from power supply variations.

Each XD_(i)I_(O) is substantially desensitized from power supply variations by utilizing the multiplier power supply desensitization method which is indicated by SPICE circuit simulations of FIG. 29. The FIG. 29 simulations results are that of a XD_(i)I_(O) similar to FIG. 20 circuit with a resolution of 8-bits digital words instead of that of FIG. 20 with a resolution of 4-bits digital words. A XD_(i)I_(O) of FIG. 29 is inputted with an 8-bit (x-word digital input) by an 8-bit (y-word digital input) wherein the x and y words are ramped from zero-scale to full scale where power supply V_(DD) is varied from 2.2V to 0.8V. FIG. 29 illustrates a waveform plot that is the error curve (output current simulation minus output current ideal) attributed to I_(o) of the XD_(i)I_(O) indicating less than ±0.5% error in DNL (differential non-linearity), INL (integral non-linearity), and GE (gain-error).

In summary, some of the benefits of the embodiment disclosed in FIG. 20 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the disclosed embodiment benefits from savings in silicon die area, lower glitch, and faster speed when plurality of XD_(i)I_(O) are required (e.g., in machine learning applications where 1000s of XD_(i)I_(O) may be needed) by utilizing the multiple iDAC method that is disclosed in section 19.

Third, the disclosed embodiment benefits from further saving in silicon die area as well as desensitization to power supply variations for each XD_(i)I_(O) by utilizing the multiplier power supply desensitization method, which also facilitates the elimination of the cascoded FETs in iDACs current reference network.

Section 21—Description of FIG. 21

FIG. 21 is a simplified circuit schematic illustrating an embodiment for a plurality-channels of mixed-mode digital-input to analog-current-output multiplier (XD_(i)I_(O)) that is single-quadrant, wherein the XD_(i)I_(O) utilizes the multiple-channel data-converter method. The XD_(i)I_(O) of FIG. 21 (XD_(i)I_(O) ₂₁ ) utilizes another embodiment of the multiple-channel data-converter method disclosed in section 19 of this disclosure to save silicon area and improve iDAC's dynamic performance. The XD_(i)I_(O) ₂₁ also utilizes another embodiment of the multiplier power supply desensitization method that substantially desensitize XD_(i)I_(O)'s output current from power supply variations, while eliminating cascodes from current sources (which saves area).

For descriptive clarity and illustrative simplicity, the embodiment of the XD_(i)I_(O) ₂₁ that is depicted in FIG. 21 is a single channel multiplier with 3-bits (x-word digital input) by 3-bits (y-word digital input) of resolution wherein the x and y words are in binary format, but the digital input resolutions can be higher (e.g., 6-bits to 12-bits) and plurality of channels can be in the 1000s. Let's assume the iDACy₂₁'s current switches (comprising of N4 y′ ₂₁ through N1 y′ ₂₁ and N4 y″ ₂₁ through N1 y″ ₂₁) and the iDACx₂₁'s current switches (comprising of N4 x′ ₂₁ through N1 x′ ₂₁ and N4 x″ ₂₁ through N1 x″ ₂₁) have low on resistances. Also, let's arrange V1 xy ₂₁=V_(DD)−Vgs_(PMOS) (e.g., placing a diode connected FET between V_(DD) and Vxy₂₁, which can help lower iDAC's glitch and improves settling time). Moreover, let's assume that V_(GSp)>>V_(DS) of PxoM₂₁ and PyrM₂₁, wherein V_(GSp) is gate-to-source voltage of a PMOS operating at full-scale current in iMULT₂₁,

As asserted earlier, XD_(i)I_(O) ₂₁ embodiment utilizes the multiple-channel method data-converter wherein a reference bias network (RBN₂₁) circuit generates a sequence of reference bias currents that are mirrored onto a respective plurality of iDAC's current reference networks, which is described in section 19. The same RBN₂₁ circuit can be utilized to mirror a fixed reference current (Ir₂₁) programmed at the full-scale of Ix₂₁ and Iy₂₁.

The XD_(i)I_(O) ₂₁ is comprising of iDACx₂₁ that generates an Ix₂₁, and iDACy₂₁ that generates an Iy₂₁, wherein Ix₂₁, Iy₂₁, and a reference current (Ir₂₁) are inputted to a current multiplier or iMULT₂₁. The resultant analog output product of iMULT₂₁ is IoM₂₁=Io₂₁ which is a single-quadrant current output.

Note that Ix₂₁ as output of iDACx₂₁ is coupled with x-input of iMULT₂₁ that is biased at about V_(DD)−V_(GSp) where V_(GSp) is that of PxoM₂₁. Similarly, Iy₂₁ as output of iDACy₂₁ is coupled with y-input of iMULT₂₁ that is also biased at about V_(DD)−V_(GSp) where V_(GSp) is that of PyM₂₁. Also, Ir₂₁ provided by NrM₂₁ is coupled with reference current input of iMULT₂₁ that is also biased at about V_(DD)−V_(GSp) where V_(GSp) is that of PrM₂₁.

As stated earlier, the XD_(i)I_(O)'s dynamic performance is improved and silicon area is reduced by utilizing the multiple-channel data-converter method that is described in section 19 of this disclosure. A single bias reference network (RBN₂₁) is shared by biasing a plurality XD_(i)I_(O) channels, wherein each XD_(i)I_(O) is comprising of iMULT (e.g., an iMULT₂₁) and pair of iDACs (e.g., iDACx₂₁ and iDACy₂₁). Here, substantially equal 1X sized current sources in the iDAC's reference current network is biased separately by RBN₂₁ wherein each iDAC's 1X sized current source carries its respective binary weighted current.

Due to FET's early voltage (V_(A)), the I_(DS) of a current source made of one FET increases with increasing its V_(DS). As such I_(DS) of a current source FET is sensitive to V_(DD) variation, unless the current source is cascoded (to increase the FET's output impedance) which takes double the area for a given current source. The multiple-channel data-converter method of section 19 is combined with the XPSR method that was described in section 20, in order to (1) avoid the cascoded FETs, (2) substantially desensitize the multiplier from power supply variations, (3) reduce the size of iDAC's binary weighted current reference network. Such combination of methods is utilized in the embodiment of a RBN₂₁ & PSR₂₁ circuit, wherein the RBN₂₁ & PSR₂₁ circuit is shared with a plurality of XD_(i)I_(O) ₂₁ channels.

Notice that the PSR circuit is comprised of identical sections that are repeated for each sequence of reference bias currents of RBN, and that each multiplier XD_(i)I_(O) ₂₁ channel is comprised of iDACx₂₁, iDACy₂₁, and an iMULT₂₁.

For example, the PSR₂₁ section of the MSB current of RBN₂₁ is comprising of P4 c ₂₁, P4 c′ ₂₁, P4 c″ ₂₁, N4 c ₂₁, and N4 c′ ₂₁. The MSB current of the RBN₂₁ circuit, which is set by the I_(DS) of N4 r ₂₁, is mirrored through P4 c ₂₁ and the diode connected P4 c′ ₂₁ where P4 c″ ₂₁ regulates the current in N4 c′ ₂₁ and its diode connected N4 c ₂₁ mirror while keeping the V_(GS) of P4 c ₂₁ and P4 c′ ₂₁ substantially equalized. The V_(DS) of N4 c′ ₂₁ is V_(DD)−V_(GSp) with V_(GSp) being that of P4 c′ ₂₁. The PSR₂₁ section's regulation of the MSB current of RBN₂₁ kicks in when, for example, V_(DD) falls then I_(DS) of P4 c″ ₂₁ increases which raises the operating current in N4 c ₂₁, N4 c′ ₂₁, P4 c′ ₂₁, and P4 c ₂₁ until the I_(DS) of P4 c ₂₁ is substantially equalized with I_(DS) of N4 r′ ₂₁, which is independent of V_(DD) variations (since I_(DS) of N4 r′ ₂₁ mirrors a multiple of the fixed reference current Ir′₂₁).

In other words, when V_(DD) varies, the I_(DS) of N4 c′ ₂₁ and P4 c′ ₂₁ is regulated and independent of V_(DD) variations, despite N4 c′ ₂₁'s V_(DS)=V_(DD)−V_(GSp). The V4 r ₂₁ that is the V_(GS) of N4 c ₂₁ and N4 c′ ₂₁ programs the bus voltage that is coupled with the gate terminals of N4 y ₂₁ and N4 x ₂₁ which are the MSB current sources of the current reference network of iDACx₂₁ and iDACy₂₁. Considering that the bias voltage at the drain terminals of N4 y ₂₁ and N4 x ₂₁ are coupled with the inputs of iMULT₂₁ which are about V_(DD)−V_(GSp), the I_(DS) of the N4 y ₂₁ and N4 x ₂₁ is also independent of V_(DD) variations because they mirror N4 c ₂₁ and N4 c′ ₂₁.

Be mindful that the drain terminals of N4 x ₂₁ and N4 y ₂₁ (when selected in iDACs) are coupled with the x and y analog input current ports of iMULT₂₁, respectively, whose bias voltages are arranged as V_(GSp) of PxoM₂₁ and PyM₂₁. In summary, the MSB current sources of iDAC's current reference networks are arranged to be independent of V_(DD) variations, without cascoded FETs in iDAC's current reference network, and with the iDAC's binary weighted current reference network that is not sized in a binary weighted manner, combination of which saves substantial silicon area (especially in machine learning applications where 1000s of iDACs may be required).

Note that the same description as above is applicable to N2 r ₂₁, N2 r′ ₂₁ and N1 r ₂₁, N1 r′ ₂₁ that in conjunction with the regulating mechanism of their respective PSR₂₁ sections, generate the V2 r ₂₁ and V1 r ₂₁ bus voltages.

Thus, V2 r ₂₁ that is the V_(GS) of N2 c ₂₁ and N2 c′ ₂₁ is the bus voltage that is coupled with the gate terminals of N2 y ₂₁ and N2 x ₂₁ which can be referred to as the second bit current sources of current reference network of iDACx₂₁ and iDACy₂₁. The I_(DS) of N2 y ₂₁ and N2 x ₂₁ is also independent of V_(DD) variations, without cascoded FETs, as explained above.

Similarly, V1 r ₂₁ that is the V_(GS) of N1 c ₂₁ and N1 c′ ₂₁ is the bus voltage that is coupled with the gate terminals of N1 y ₂₁ and N1 x ₂₁ which are the LSB current sources of current reference network of iDACx₂₁ and iDACy₂₁. Accordingly, I_(DS) of N1 y ₂₁ and N1 x ₂₁ is independent of V_(DD) variations, without cascoded FETs. As indicated earlier, V4 r ₂₁, V2 r ₂₁, and V1 r ₂₁ are bus voltages in the reference bias network (RBN) that set the sequence of reference bias currents for plurality of iDACs (e.g., there can be 1000s if iDACs sharing the sequence bus voltages generated by the same RBN).

In summary, the sequence of reference bias currents generated in the RBN circuit are substantially desensitized from V_(DD) variations by the PSR circuit before they are mirrored onto the iDAC's current reference networks. As such, iDAC's output currents are arranged to be independent of V_(DD) variations, without cascoded FETs in iDAC's current reference network which save silicon area.

As presented in section 20, the iMULT₂₁'s input output transfer function follows the Iy₂₁/Ir₂₁=Io₂₁/Ix₂₁ relationship. The Iy₂₁/Ir₂₁ is substantially desensitized to V_(DD) variations, since iDACy₂₁ current output that is Iy₂₁ and Ir₂₁ are substantially desensitized to V_(DD) variations without cascoded FETs, as explained earlier.

The iDACx₂₁ current output is also substantially desensitized to V_(DD) variations without cascoded FETs. The PoM₂₁ is cascoded with PoM′₂₁ to increase the output impedance of output port of iMULT₂₁ and substantially desensitized Io₂₁ to V_(DD) variations. Also, PxM₂₁ is cascoded with PxM′₂₁ to help match the V_(DS) of PxM₂₁ and PoM₂₁, which helps with Io₂₁/Ix₂₁ insensitivity to V_(DD) variations.

Each XD_(i)I_(O) is substantially desensitized from power supply variations by utilizing another embodiment of the multiplier power supply desensitization method that is indicated by SPICE circuit simulations of FIG. 28. It is the simulations results of a XD_(i)I_(O) similar to that of FIG. 21, but with a resolution of 8-bits digital words instead of that of FIG. 21 with a resolution of 3-bits digital words. A XD_(i)I_(O) of FIG. 29 is inputted with an 8-bit (x-word digital input) by an 8-bit (y-word digital input) wherein the x and y words are ramped from zero-scale to full scale where power supply V_(DD) is varied from 2.2V to 0.8V. FIG. 28 illustrates a waveform plot that is the error curve (output current simulation minus output current ideal) attributed to I_(o) of the XD_(i)I_(O) indicating less than ±0.75% error in DNL (differential non-linearity), INL (integral non-linearity), and GE (gain-error).

In summary some of the benefits of the embodiment disclosed in FIG. 21 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the disclosed embodiment benefits from savings in silicon die area, lower glitch, and faster speed when plurality of XD_(i)I_(O) are required (e.g., in machine learning applications where 1000s of XD_(i)I_(O) may be needed) by utilizing the multiple iDAC method that is disclosed in section 19.

Third, the disclosed embodiment benefits from further saving in silicon die area as well as desensitization to power supply variations for each XD_(i)I_(O) by utilizing another embodiment of the multiplier power supply desensitization method, which also facilitates the elimination of the cascoded FETs in iDACs current reference network.

Section 22A—Description of FIG. 22A

FIG. 22A is a SPICE circuit simulations that illustrates the linearity error in % between an ideal output current (Io_(ideal)) iDAC versus the simulated output current (Io_(simulation)) of one of the iDAC channels as arranged similar to that of FIG. 19 but with an 8-bit resolution. The reference bias network is not trimmed here.

Keeping in mind that 8-bit of resolution computes to about ±0.4% of accuracy, FIG. 22 indicates DNL (differential non-linearity) and INL (integral non-linearity) of less than about +0.5%. Note that the iDAC's digital input word span between zero and full scale.

Section 22B—Description of FIG. 22 b

FIG. 22B is a SPICE circuit simulations that illustrates the linearity error in % between an ideal output current (Io_(ideal)) iDAC versus the simulated output current (Io_(simulation)) of one of the iDAC channels as arranged similar to that of FIG. 19 but with an 8-bit resolution. The two MSBs of the reference bias network (RBN) is trimmed here, which would improve the linearity of plurality of iDACs (that are biased from the same RBN).

Keeping in mind that 8-bit of resolution computes to about ±0.4% of accuracy, FIG. 22 indicates DNL (differential non-linearity) and INL (integral non-linearity) of less than about +0.25% which is roughly a factor of 4 improvement. Note that the iDAC's digital input word span between zero and full scale.

Section 23—Description of FIG. 23

FIG. 23 is a simplified circuit schematic illustrating an embodiment of a digital-input to analog-current-output multiplier (XD_(i)I_(O)) that operate in current mode comprising of an iDACx₂₃ whose analog-current-output supplies the reference input to an iDACy₂₃.

For descriptive clarity and illustrative simplicity, the XD_(i)I_(O) ₂₃ 's resolution is arranged as a 3-bit (x-channel for iDACx₂₃) by 3-bit (y-channel for iDACy₂₃), but the resolution can be higher (e.g., 16-bits).

A current reference (Ir′₂₃) is inputted and mirrored onto iDACx₂₃'s binary weighed current reference network comprising of P4 x ₂₃ (scaled at 4×), P2 x ₂₃ (scaled at 2×), and P1 x ₂₃ (scaled at 1×). The iDACx₂₃'s digital inputs (Dx₂₃ digital word) are D3 x ₂₃ (as MSB) through D1 x ₂₃ (as LSB), which control iDACx₂₃'s analog current switches P4 x′ ₂₃ through P1 x′ ₂₃ and P4 x″ ₂₃ through P1 x″ ₂₃.

The selected sums of iDACx₂₃'s analog current switch outputs are steered through node n₂₃ onto the reference input of iDACy₂₃.

The iDACy₂₃'s binary weighed current reference network comprising of P4 y ₂₃ (scaled at 4×), P2 y ₂₃ (scaled at 2×), and P1 y ₂₃ (scaled at 1×) have their source terminals coupled together and floating on node n₂₃. Moreover, note that the gate terminal of P4 y ₂₃, P2 y ₂₃, and P1 y ₂₃ are coupled together with Pr′₂₃'s cascode bias voltage Vy′₂₃, which provides enough headroom for the iDACx₂₃'s binary weighed current reference network and improves its output impedance. Similarly, the iDACy₂₃'s digital inputs (Dy₂₃ digital word) are D3 y ₂₃ (as MSB) through D1 y ₂₃ (as LSB) control iDACy₂₃'s analog current switches P4 y′ ₂₃ through P1 y′ ₂₃ and P4 y″ ₂₃ through P1 y″ ₂₃. The selected sums of iDACy₂₃'s analog current switch outputs are steered through the XD_(i)I_(O) ₂₃ 's current-output node I_(O) ₂₃ that generates the analog current product Ax₂₃×Ay₂₃/Ar₂₃, wherein Ax₂₃ is the analog current representation of the digital word Dx₂₃, Ay₂₃ is the analog current representation of the digital word Dy₂₃, and Ar₂₃ is a multiple of Ir′₂₃.

The disclosed XD_(i)I_(O) ₂₃ benefits from current mode operations, which has been discussed in this disclosure. Another benefit of XD_(i)I_(O) ₂₃ disclosure results from feeding the current output of a first iDAC directly into the reference port of a second iDAC, whose reference input port is floating. The floating iDAC method (that is utilized here) was describe in section 1 of this disclosure. Here, the source terminals of current reference FET network of the second iDAC are coupled together to arrange the floating reference port of the second iDAC. As such, a current mirror (to channel the first iDAC output current onto the second iDAC reference input port) is avoided, which saves area and improves accuracy since it avoids the mismatch associated with the said current mirror.

Section 24—Description of FIG. 24

FIG. 24 is a simplified circuit schematic illustrating another embodiment of mixed-mode digital-input to analog-current-output multiplier (XD_(i)I_(O)) that operate in current mode comprising of an iDACx₂₄ whose analog-current-output supplies the reference input to an iDACy₂₄.

For descriptive clarity and illustrative simplicity, the XD_(i)I_(O) ₂₄ 's resolution is arranged as a 3-bit (x-channel for iDACx₂₄) by 3-bit (y-channel for iDACy₂₄) but the resolution can be higher (e.g., 16-bits).

A current reference (Ir′₂₄) is inputted and mirrored onto iDACx₂₄'s binary weighed current reference network comprising of P4 x ₂₄ (scaled at 4×), P2 x ₂₄ (scaled at 2×), and P1 x ₂₄ (scaled at 1×). The iDACx₂₄'s digital inputs (Dx₂₄ digital word) are D3 x ₂₄ (as MSB) through D1 x ₂₄ (as LSB), which control iDACx₂₄'s analog current switches P4 x′ ₂₄ through P1 x′ ₂₄ and P4 x″ ₂₄ through P1 x″ ₂₄.

Note that the embodiment of FIG. 24 does not arrange iDACx₂₄'s analog current switches is series with the binary weighed current reference network path. Instead, iDACx₂₄'s analog current switches are enabled (turned on) by switch coupling with the gate terminal of Pr₂₄ or disabled (turned off) by switch coupling with V_(DD). For example, when D3 x ₂₄ digital value is high (on), then the analog current switch P4 x′ ₂₄ is on and the analog current switch P4 x″ ₂₄ is off, which causes P4 x ₂₄'s binary weighted MSB current (scaled and mirrored by P4 x ₂₄−Pr₂₄ current mirror) to flow onto the iDACx₂₄ current output port that is node n₂₄. Conversely, for example, when D3 x ₂₄ digital value is low (off), then the analog current switch P4 x′ ₂₄ is off and the analog current switch P4 x″ ₂₄ is on, which shuts off P4 x ₂₄ and blocks its' binary weighted MSB current from flowing onto the iDACx₂₄ current output port that is node n₂₄. The same principle of operations applies to the other bits of iDACx₂₄.

The selected sums of iDACx₂₄'s analog current switch outputs are steered through the floating node n₂₄ and onto the reference input of iDACy₂₄.

The iDACy₂₄'s binary weighed current reference network comprising of P4 y ₂₄ (scaled at 4×), P2 y ₂₄ (scaled at 2×), and P1 y ₂₄ (scaled at 1×) have their source terminals coupled together and floating on node n₂₄. Moreover, be mindful that the gate terminal of P4 y ₂₄, P2 y ₂₄, and P1 y ₂₄ are coupled together with Pr′₂₄'s cascode bias voltage Vy′₂₄, which provides enough headroom for the iDACx₂₄'s binary weighed current reference network and improves its output impedance. Similarly, the iDACy₂₄'s digital inputs (Dy₂₄ digital word) are D3 y ₂₄ (as MSB) through D1 y ₂₄ (as LSB) control iDACy₂₄'s analog current switches P4 y′ ₂₄ through P1 y′ ₂₄ and P4 y″ ₂₄ through P1 y″ ₂₄. The selected sums of iDACy₂₄'s analog current switch outputs are steered through the XD_(i)I_(O) ₂₄ 's current-output node I_(O) ₂₄ that generates the analog current product Ax₂₄×Ay₂₄/Ar₂₄, wherein Ax₂₄ is the analog current representation of the digital word Dx₂₄, Ay₂₄ is the analog current representation of the digital word Dy₂₄, and Ar₂₄ is a multiple of Ir′₂₄.

The disclosed XD_(i)I_(O) ₂₄ benefits from current mode operations, which has been discussed in this disclosure. Another benefit of XD_(i)I_(O) ₂₄ disclosure results from feeding the current output of a first iDAC directly into the reference port of a second iDAC, whose reference input port is floating. The floating iDAC method, which is utilized here, was describe in section 1 of this disclosure. Here, the source terminals of current reference FET network of the second iDAC are coupled together to arrange the floating reference port of the second iDAC. As such, a current mirror (to channel the first iDAC output current onto the second iDAC reference input port) is avoided, which saves area and improves accuracy since it avoids the mismatch associated with the said current mirror.

Section 25—Description of FIG. 25

FIG. 25 is a simplified circuit schematic illustrating another embodiment of a digital-input to analog-current-output multiplier (XD_(i)I_(O)) that operate in current mode. The XD_(i)I_(O) ₂₅ is comprising of a first current-output iDACx₂₅ whose analog-current-output supplies the reference input to an iDACy₂₅, while a power supply desensitization circuit (PSR₂₅) substantially desensitize the XD_(i)I_(O) ₂₅ 's output current to V_(DD) variations wherein silicon area is saved by eliminating the need for cascoded FETs in the iDACs.

For descriptive clarity and illustrative simplicity, the XD_(i)I_(O) ₂₅ 's resolution is arranged as a 3-bit (x-channel for iDACx₂₅) by 3-bit (y-channel for iDACy₂₅) but the resolution can be higher (e.g., 16-bits).

A current reference (Ir′₂₅) is inputted and mirrored onto iDACx₂₅'s binary weighed current reference network comprising of P4 x ₂₅ (scaled at 4×), P2 x ₂₅ (scaled at 2×), and P1 x ₂₅ (scaled at 1×). The iDACx₂₅'s digital inputs (Dx₂₅ digital word) are D3 x ₂₅ (as MSB) through D1 x ₂₅ (as LSB), which control iDACx₂₅'s analog current switches P4 x′ ₂₅ through P1 x′ ₂₅ and P4 x″ ₂₅ through P1 x″ ₂₅.

Be mindful that generally cascoded FETs are utilized in an iDAC's current reference network to increase its output impedance and substantially desensitize an iDAC's output current from power supply variations.

Here, the selected sums of iDACx₂₅'s analog current switch outputs are steered through node n₂₅ onto a power supply desensitization circuit (PSR₂₅). One of the objectives of PSR₂₅ is to substantially desensitize the output current of XD_(i)I_(O) ₂₅ from power supply variations, wherein the cascode FETs are eliminated from the binary weighted current reference network of iDACx₂₅ and iDACy₂₅. Without the cascode FETs, the binary weighted current reference network net-net area is reduced substantially compared to the added area of PSR₂₅ (and hence the overall area of XD_(i)I_(O) ₂₅ is reduced).

In the disclosed embodiment of FIG. 25, the PSR₂₅ receives the iDACx₂₅ output current at node n₂₅ whose DC voltage is biased at V_(DD)−VGS_(Pq) ₂₅ . As such the binary weighted current reference network output of iDACx₂₅ (at node n₂₅) tracks the Ir′₂₅ (that is a fixed reference current and independent of V_(DD) by design), wherein iDACx₂₅ output port is also biased at V_(DD)−VGS_(Pr) ₂₅ , which substantially desensitizes iDACx₂₅'s output current from V_(DD) variations. Without the PSR₂₅ and without the cascoded FETs, the iDACy₂₅'s output current would vary with V_(DD) since the drain-to-source voltage (V_(DS)) of iDACy₂₅'s binary weighted current reference network (N4 y ₂₅, N2 y ₂₅, and N1 y ₂₅) is subject to V_(DD) variations and the DC bias voltage of IO₂₅ port (e.g., V_(IO) ₂₅ =V_(DD)−V_(GS)). Notice that the V_(DS) of Pq′₂₅ is V_(DD)−VGS_(Nq) ₂₅ and VDs of Nq′₂₅ is V_(DD)−VGS_(Pq) ₂₅ . To substantially desensitize the output current of iDACy₂₅ (without its' cascoded FETs), Pq′₂₅ regulates the current through Nq₂₅ and Nq′₂₅ until I_(DS) of Nq′₂₅ and the output current of iDACx₂₅ (flowing through node n₂₅) are substantially equalized. The I_(DS) of Nq′₂₅ is mirrored onto the current reference network of iDACy₂₅ (stripped from cascoded FETs to save area), and accordingly the current output of iDACy₂₅ which is the analog current output of D_(I)I_(O) ₂₅ is substantially desensitized from V_(DD) variations.

The iDACy₂₅'s binary weighed current reference network comprising of N4 y ₂₅ (scaled at 4×), N2 y ₂₅ (scaled at 2×), and N1 y ₂₅ (scaled at 1×) are scaled and mirrored to I_(DS) of Nq′₂₅, and Nq₂₅. Here also, the iDACy₂₅'s digital inputs (Dy₂₅ digital word) are D3 y ₂₅ (as MSB) through D1 y ₂₅ (as LSB) control iDACy₂₅'s analog current switches N4 y′ ₂₅ through N1 y′ ₂₅ and N4 y″ ₂₅ through N1 y″ ₂₅. The selected sums of iDACy₂₅'s analog current switch outputs are steered through the XD_(i)I_(O) ₂₅ 's current-output node IO₂₅. The iDACy₂₅'s output generates the equivalent analog output current product Ax₂₅×Ay₂₅/Ar₂₅, wherein Ax₂₅ is the analog current representation of the digital word Dx₂₅, Ay₂₅ is the analog current representation of the digital word Dy₂₅, and Ar₂₅ is a scaled Ir′₂₅. Again, consider that node IO₂₅ can be biased at a V_(GS) below V_(DD).

The disclosed XD_(i)I_(O) ₂₅ benefits from current mode operations, which has been discussed in this disclosure. Another benefit of XD_(i)I_(O) ₂₅ is having a smaller area by utilizing a method of rejecting power supply variations by regulating the first iDAC's output current before it is fed onto the reference input the second iDAC, wherein the iDAC's current reference networks are stripped from cascoded FETs. This power supply desensitization method utilized in XD_(i)I_(O) ₂₅ (via the embodiment of a power supply desensitization circuit PSR₂₅) substantially desensitizes XD_(i)I_(O) ₂₅ 's output from V_(DD) variations, wherein the cascoded FETs (in the iDAC's current reference networks) are eliminated, which saves silicon area and lowers cost.

Section 26—Description of FIG. 26

FIG. 26 is a simplified circuit schematic illustrating another embodiment of a digital-input to analog-current-output multiplier (XD_(i)I_(O)) that operate in current mode. The XD_(i)I_(O) ₂₆ is comprising of an iDACx₂₆ whose analog-current-output supplies the reference input to a power supply desensitization circuit (PSR₂₆) that biases the current reference network of the iDACy₂₆. Here, PSR₂₆ substantially desensitize the XD_(i)I_(O) ₂₆ 's output current to V_(DD) variations, while the iDAC's current reference network areas are reduced by eliminating the cascoded FETs.

For descriptive clarity and illustrative simplicity, the XD_(i)I_(O) ₂₆ 's resolution is arranged as a 3-bit (x-channel for iDACx₂₆) by 3-bit (y-channel for iDACy₂₆) but the resolution can be higher (e.g., 16-bits).

A current reference (Ir′₂₆) is inputted and mirrored onto iDACx₂₆'s binary weighed current reference network comprising of P4 x ₂₆ (scaled at 4×), P2 x ₂₆ (scaled at 2×), and P1 x ₂₆ (scaled at 1×). The iDACx₂₆'s digital inputs (Dx₂₆ digital word) are D3 x ₂₆ (as MSB) through D1 x ₂₆ (as LSB), which control iDACx₂₆'s analog current switches P4 x′ ₂₆ through P1 x′ ₂₆ and P4 x″ ₂₆ through P1 x″ ₂₆.

The selected sums of iDACx₂₆'s analog current switch outputs are steered through node n₂₆ onto a power supply desensitization circuit (PSR₂₆). Similar to the disclosure in section 25, one of the objectives of PSR₂₆ is to substantially desensitize the output current of DD_(i)I_(O) ₂₆ from power supply variations, while the cascode FETs are eliminated from the binary weighted current reference network of iDACx₂₆ and iDACy₂₆. By eliminating the cascode FETs from the binary weighted current reference network, net-net the area of iDACx₂₆ and iDACy₂₆ is substantially reduced compared to the added area of PSR₂₆ (and hence the overall area of XD_(i)I_(O) ₂₆ is reduced).

Consider that cascoded FETs may be needed in an iDAC's current reference network to increase its output impedance and substantially desensitize an iDAC's output current from power supply variations. Here, the PSR₂₆ receives the iDACx₂₆ output current at node n₂₆ whose DC voltage is biased at V_(DD)−V_(GSP) wherein V_(GS)P is that of Pq₂₆. The Ir′₂₆ (that is independent of V_(DD) by design) is biased at V_(DD)−VGS_(Pr) ₂₆ where Ir′₂₆'s current biases the binary weighted current reference network of iDACx₂₆. As such, the reference current input port and the current output (at node n₂₆) of iDACx₂₆ are biased at V_(DD)−V_(GSp) and track each other, which therefore helps iDACx₂₆ output current to be substantially desensitized from V_(DD) variations.

Moreover, keep in mind that without the PSR₂₆ and without the cascoded FETs, the iDACy₂₆'s output current would also vary with V_(DD) since the drain-to-source voltage (V_(DS)) of iDACy₂₆'s binary weighted current reference network (N4 y ₂₆, N2 y ₂₆, and N1 y ₂₆) is subject to V_(DD) variations and the DC bias voltage of IO₂₆ port (e.g., V_(IO) ₂₆ =V_(DD)−V_(GS)). Note that the V_(DS) of Pq″₂₆ is V_(DD)−VGS_(Nq) ₂₆ and V_(DS) of Nq₂₆ is V_(DD)−VGS_(Pq) ₂₆ . As such, to substantially desensitize the output current of iDACy₂₆ (without cascoded FETs), the inverting current amplifier comprising of Pq₂₆, Pq′₂₆, and Pq″₂₆ regulates the currents through Nq″₂₆ and Nq₂₆ until I_(DS) of Nq₂₆ and the output current of iDACx₂₆ (flowing through node n₂₆) are substantially equalized. The I_(DS) of Nq″₂₆ and Nq₂₆ are mirrored onto the current reference network of iDACy₂₆ (stripped from cascoded FETs to save area), and accordingly the current output of iDACy₂₆ that is the analog current output of XD_(i)I_(O) ₂₆ is substantially desensitized from V_(DD) variations.

The iDACy₂₆'s binary weighed current reference network comprising of N4 y ₂₆ (scaled at 4×), N2 y ₂₆ (scaled at 2×), and N1 y ₂₆ (scaled at 1×) are scaled and mirrored to I_(DS) of Nq″₂₆, Nq₂₆. Here also, the iDACy₂₆'s digital inputs (Dy₂₆ digital word) are D3 y ₂₆ (as MSB) through D1 y ₂₆ (as LSB) control iDACy₂₆'s analog current switches N4 y′ ₂₆ through N1 y′ ₂₆ and N4 y″ ₂₆ through N1 y″ ₂₆. The selected sums of iDACy₂₆'s analog current switch outputs are steered through the XD_(i)I_(O) ₂₆ 's current-output node IO₂₆ that generates the equivalent analog output current product Ax₂₆×Ay₂₆/Ar₂₆, wherein Ax₂₆ is the analog current representation of the digital word Dx₂₆, Ay₂₆ is the analog current representation of the digital word Dy₂₆, and Ar₂₆ is a scaled Ir′₂₆. Again, notice that node IO₂₆ can be biased at a V_(GS) below V_(DD).

The disclosed XD_(i)I_(O) ₂₆ benefits from current mode operations, which has been discussed in this disclosure. Another benefit of XD_(i)I_(O) ₂₆ is having a smaller area by utilizing the method of rejecting power supply variations by regulating iDACx₂₆ output current before it is fed onto the reference input of iDACy₂₆, wherein both iDAC's binary weighted current reference networks are stripped from cascoded FETs. The disclosed embodiment of power supply desensitization method in PSR₂₆ is utilized in XD_(i)I_(O) ₂₆ which substantially desensitizes iDACx₂₆ output current from V_(DD) while PSR₂₆ regulates iDACy₂₆'s reference input current. Thus, the output current of the overall multiplier is substantially desensitized from power supply variations and the cascoded FETs (in both of the iDAC's current reference networks) are eliminated which saves area and lowers cost.

Section 27—Description of FIG. 27

FIG. 27 is a simplified circuit schematic illustrating another embodiment of mixed-mode digital-input to analog-current-output multiplier (XD_(i)I_(O)) that operate in current mode comprising of a first current-output iDAC or iDACx₂₇ whose analog-current-output supplies the reference input to a second current-output iDAC or iDACy₂₇.

For descriptive clarity and illustrative simplicity, the XD_(i)I_(O) ₂₇ 's resolution is arranged as a 3-bit (x-channel for iDACx₂₇) by 3-bit (y-channel for iDACy₂₇), but the resolution can be higher (e.g., 16-bits).

A current reference (Ir′₂₇) is inputted and mirrored onto iDACx₂₇'s binary weighed current reference network comprising of P4 ₂₇ (scaled at 4×), P2 ₂₇ (scaled at 2×), and P1 ₂₇ (scaled at 1x). The iDACx₂₇'s digital inputs (Dx₂₇ digital word) are D3 x ₂₇ (as MSB) through D1 x ₂₇ (as LSB), which control iDACx₂₇'s analog current switches P4′₂₇ through P1′₂₇ and P4″₂₇ through P1″₂₇. For example, when D3 x ₂₇ is in a low state, current switch P4″₂₇ turns on and all of P4 ₂₇'s current flows through P4″₂₇ into Vx₂₇ (which can be coupled with V_(SS)). Conversely, when D3 x ₂₇ is in a high state, current switch P4″₂₇ turns off and all of P4 ₂₇'s current flows through P4′₂₇ into node n₂₇ (which is the current output port of iDACx₂₇). Note also that gate terminals of FETs comprising of P4′₂₇ through P1′₂₇ are coupled to a fixed bias voltage (Vx′₂₇), and as such, these FETs can serve as analog current switch as well as cascoded FETs that increase the output impedance of iDACx₂₇'s current reference network. The output current of iDACx₂₇ is fed onto Ny₂₇ to function in a current mirror supplying the current reference input of iDACy₂₇.

The iDACy₂₇'s binary weighed current reference network comprising of N4 ₂₇ (scaled at 4×), N2 ₂₇ (scaled at 2×), and N1 ₂₇ (scaled at 1×) are scaled and mirrored to I_(DS) of Ny₂₇. Here also, the iDACy₂₇'s digital inputs (Dy₂₇ digital word) are D3 y ₂₇ (as MSB) through D1 y ₂₇ (as LSB) that control iDACy₂₇'s analog current switches N4′₂₇ through N1′₂₇ and N4″₂₇ through N1″₂₇. Similar to the arrangement in iDACx₂₇, here for example, when D3 y ₂₇ is in a high state, current switch N4′₂₇ turns on and all of N4 ₂₇'s current flows through N4′₂₇ into IO₂₇ port. Conversely, when D3 y ₂₇ is in a low state, current switch N4′₂₇ turns off and all of N4 ₂₇'s current flows through N4″ 27 and onto Vy₂₇ (which can be coupled with V_(DD)). Note also that gate terminals of FETs comprising of N4″ 27 through N1″₂₇ are coupled to a fixed bias voltage (Vy″₂₇), and as such, these FETs serve as analog current switch as well as cascode that increase the output impedance of iDACy₂₇'s current reference network. The selected sums of iDACy₂₇'s analog current switch outputs are steered through the XD_(i)I_(O) ₂₇ 'S current-output node IO₂₇ that generates the equivalent analog output current product Ax₂₇×Ay₂₇/Ar₂₆, wherein Ax₂₇ is the analog current representation of the digital word Dx₂₇, Ay₂₇ is the analog current representation of the digital word Dy₂₇, and Ar₂₇ is a scaled Ir′₂₇.

The disclosed XD_(i)I_(O) ₂₇ benefits from current mode operations, which has been discussed in this disclosure. Another benefit of XD_(i)I_(O) ₂₇ is having a smaller area by utilizing the same FETs as current switches of each iDAC and as cascoded FETs (to increase the iDAC's current reference network's output impedance).

Section 28—Description of FIG. 28

FIG. 28 is a circuit simulations showing the error waveform (output current SPICE simulation minus output current ideal) attributed to the output current (I_(o)) of a XD_(i)I_(O) that is arranged similar to that of FIG. 21 but having an 8-bit digital inputs instead of 3-bits.

As noted, the XD_(i)I_(O) circuit (whose simulation is provided in FIG. 28) is inputted with an 8-bit (x-word digital input) by an 8-bit (y-word digital input) wherein the x and y words are ramped from zero-scale to full scale while power supply V_(DD) is varied from 2.2V (the upper waveform of FIG. 28) to 0.8V (the lower waveform of FIG. 28).

FIG. 28 illustrates a waveform plot that is the error curve (i.e. XD_(i)I_(O)'s output current I_(O) simulation minus XD_(i)I_(O)'s output current I_(o) ideal) indicating under ±0.75% error in DNL (differential non-linearity), INL (integral non-linearity), and GE (gain-error). FIG. 28 indicates that the XD_(i)I_(O) with 8-bit digital inputs is substantially desensitized from power supply variations by utilizing the multiplier power supply desensitization method.

Section 29—Description of FIG. 29

FIG. 29 is a circuit simulations showing the error waveform (output current SPICE simulation minus output current ideal) attributed to the output current (I_(o)) of a XD_(i)I_(O) that is arranged similar to that of FIG. 20 but having an 8-bit digital inputs instead of 4-bits.

As noted, the XD_(i)I_(O) circuit whose simulation is provided in FIG. 29 is inputted with an 8-bit (x-word digital input) by an 8-bit (y-word digital input) wherein the x and y words are ramped from zero-scale to full scale where power supply V_(DD) is varied from 2.2V (the upper waveform of FIG. 29) to 0.8V (the lower waveform of FIG. 29).

FIG. 29 illustrates a waveform plot that is the error curve (i.e. XD_(i)I_(O)'s output current I_(o) simulation minus XD_(i)I_(O)'s output current I_(o) ideal) indicating under ±0.5% error in DNL (differential non-linearity), INL (integral non-linearity), and GE (gain-error). FIG. 29 indicates that the XD_(i)I_(O) with 8-bit digital inputs is substantially desensitized from power supply variations by utilizing the multiplier power supply desensitization method.

Section 30—Description of FIG. 30

FIG. 30 is a simplified circuit schematic illustrating another embodiment for a plurality-channels of mixed-mode digital-input to analog-current-output multiplier (XD_(i)I_(O)) that is single-quadrant, wherein the XD_(i)I_(O) utilizes the multiple-channel data-converter method. The XD_(i)I_(O) of FIG. 30 (XD_(i)I_(O) ₃₀ ) utilizes another embodiment of the multiple-channel data-converter method disclosed in section 19 of this disclosure to save silicon area and improve iDAC's dynamic performance. The XD_(i)I_(O) ₃₀ also utilizes another embodiment of the multiplier power supply desensitization method (or XPSR method) disclosed in section 20 that substantially desensitize XD_(i)I_(O)'s output current from power supply variations, while eliminating cascodes from current sources (which saves area).

The overall description of XD_(i)I_(O) provided in section 21 (illustrated in FIG. 21) is applicable to the XD_(i)I_(O) ₃₀ here. The iDACs and iMULT between FIG. 21 and FIG. 30 are identical. Thus, the description provided in section 21 (illustrated in FIG. 21) about the iDACs is applicable to pairs of iDACx₃₀ and iDACy₃₀. Also, the description provided in section 21 (illustrated in FIG. 21) about the iMULT is applicable to iMULT₃₀.

The embodiment of RBN₃₀ & PSR₃₀ utilizes another combination of the multiple-channel data-converter method disclosed in section 19 and the XPSR method disclosed in section 20. In the embodiment of RBN₃₀ & PSR₃₀ illustrated in FIG. 30, substantial area savings are realized by eliminating the cascode from current sources in iDACx₃₀, iDACy₃₀, iMULT₃₀, and the RBN₃₀ circuits, while the output current of XD_(i)I_(O) ₃₀ is substantially desensitized from V_(DD) variations. This is done by regulating the reference bias currents of RBN₃₀ so that the outputs of iDACx₃₀ and iDACy₃₀ (which supplies a pair of the input currents to iMULT₃₀) as well as the reference current input to the iMULT₃₀ are substantially desensitized to power supply variations, and wherein the voltage at the inputs of iMULT₃₀ substantially track power supply voltage variations. The power supply desensitization mechanism is explained as follows:

Bear in mind that FET early voltage (V_(A)) causes the FET's I_(DS) to vary with varying the FET's V_(DS). The V_(DS) of the N4 y ₃₀ is about a V_(GS) of PyoM₃₀ below V_(DD), assuming low on resistance (low voltage drop) across iDACx₃₀ current reference network current switches (N4 y′ ₃₀ and N4 y″ ₃₀) which causes the I_(DS) of the N4 y ₃₀ to vary. The gate port of N4 y ₃₀ is coupled with a diode connected N4 r ₃₀ (whose V_(DS) and V_(GS) are substantially equal). The I_(DS) of the N4 r ₃₀ would vary with changes in V_(DD) since the V_(DS) of P4 r ₃₀ is about V_(DD) minus V_(GS) of N4 r ₃₀. The disclosed power supply desensitization circuit (PSR₃₀) emulates a similar signal path from the gate port of P4 r ₃₀ to gate port of PyoM₃₀ (which is the output of iDACx₃₀ and the input of iMULT₃₀). This is done for the current input of iMULT₃₀ to be insensitive to power supply variations, while all iMULT₃₀, iDACx₃₀, iDACy₃₀, and RBN₃₀ current sources are without cascodes, which saves substantial silicon area.

This is how the PSR₃₀ circuit emulates a similar signal path from the gate port of P4 r ₃₀ to gate port of PyoM₃₀: The fixed current reference Ir′₃₀ is mirrored between Pc′₃₀ and Pc″₃₀ whose V_(DS) is V_(GS) of a PMOS and tracks each other with changes in V_(DD). The I_(DS) of diode connected Pc″₃₀ changes with V_(DD) variations in light of V_(DS) of the Nc′₃₀ being V_(DD) minus V_(GS) of Pc″₃₀. The Nc′₃₀ and diode connected Nc₃₀ are mirrors, wherein V_(DS) of Pc₃₀ is V_(DD) minus the V_(GS) of Nc₃₀ which causes the I_(DS) of Nc₃₀ to change with V_(DD). Now, PcR₃₀ substantially equalizes Ir′₃₀ with the I_(DS) of Pc′₃₀ by regulating the current in Nc″₃₀ that is mirrored onto Nr′₃₀ which regulates the gate voltage (and thus the IDs) of Pr′₃₀ and Pc₃₀ as well as the gate voltage (and thus the IDs) of P4 r ₃₀, P2 r ₃₀, and P1 r ₃₀. Also, consider that I_(DS) of P4 r ₃₀, P2 r ₃₀, and P1 r ₃₀ (establishes the bus voltages V4 r ₃₀, V2 r ₃₀, and V1 r ₃₀) generate the sequence of reference bias currents from the reference bias network (RBN₃₀).

In summary some of the benefits of the embodiment disclosed in FIG. 30 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the disclosed embodiment benefits from savings in silicon die area, lower glitch, and faster speed when plurality of XD_(i)I_(O) are required (e.g., in machine learning applications where 1000s of XD_(i)I_(O) may be needed) by utilizing the multiple iDAC method that is disclosed in section 19.

Third, the disclosed embodiment benefits from further saving in silicon die area as well as desensitization to power supply variations for each XD_(i)I_(O) by combining the multiple iDAC method with another embodiment of the multiplier power supply desensitization method, which also facilitates the elimination of the cascoded FETs in iDACs current reference network as well as the PSR circuit.

Section 31—Description of FIG. 31

FIG. 31 is a circuit simulations showing the error waveform (output current SPICE simulation minus output current ideal) attributed to the output current (I_(o)) of a XD_(i)I_(O) that is arranged similar to that of FIG. 30 but having an 8-bit digital inputs instead of 3-bits.

As noted, the XD_(i)I_(O) circuit whose simulation is provided in FIG. 31 is inputted with an 8-bit (x-word digital input) by an 8-bit (y-word digital input) wherein the x and y words are ramped the opposite of one another between zero-scale to full scale where power supply V_(DD) is varied from 2V (the upper waveform of FIG. 31) to 1V (the lower waveform of FIG. 31).

FIG. 31 illustrates a waveform plot that is the error curve (i.e. XD_(i)I_(O)'s output current I_(o) simulation minus XD_(i)I_(O)'s output current I_(o) ideal) indicating under ±1% error in DNL (differential non-linearity), INL (integral non-linearity), and GE (gain-error) for V_(DD)=2v and V_(DD)=1v, respectively. FIG. 31 indicates that the XD_(i)I_(O) with 8-bit digital inputs is substantially desensitized from power supply variations by utilizing the multiplier power supply desensitization method combined with the multiple iDAC method.

Section 32—Description of FIG. 32

FIG. 32 is a simplified block diagram illustrating a meshed digital-to-analog multiplication (mD_(i)S_(O)) method. For clarity and not as a limitation, the mD_(i)S_(O) method is described as receiving two digital words, each having 3-bits of resolution but the digital input word resolution can be higher (e.g., 16-bits). The digital input bits are meshed with analog circuitry, wherein the digital bits controls are meshed with the reference network to perform bit-weight attribution and summation in the analog domain.

The mD_(i)S_(O) method of FIG. 32 is inputted with two digital input words that are x-bits wide (e.g., Dx₃₂ word with x=3) and y-bits wide (e.g., Dy₃₂ word with y=3). The mD_(i)S_(O) method is also inputted with a reference signal (Sr) that is scaled onto a bank of scaled reference networks (e.g., 1×Sr₃₂, 2×Sr₃₂, and 4×Sr₃₂). Plurality of y-channel sub-DACs (e.g., DAC1 y ₃₂, DAC2 y ₃₂, and DAC3 y ₃₂) each receiving the one respective bit of a y-digital input word (e.g., D1 y ₃₂, D2 y ₃₂, and D3 y ₃₂) control the steering (or transmission) of the scaled reference network to a plurality of x-channel sub-DAC's reference inputs (e.g., respective reference S_(R) inputs of DACx1 ₃₂, DACx2 ₃₂, and DACx3 ₃₂), wherein each x-channel sub-DAC receives the same x-digital input word (e.g., D1 x ₃₂, D2 x ₃₂, and D3 x ₃₂). The outputs of x-channel sub-DACs is combined to generate the final analog multiplication representation (Sxy₃₂) of the digital X·Y multiplications. Here, the analog output or S_(O) of DACx1 ₃₂, DACx2 ₃₂, and DACx3 ₃₂ are combined together to generate Sxy₃₂. Note that for a binary (linear) multiplier, the scaled reference network is also binarily weighted, but the reference network can be scaled in other fashions (e.g., equal weighted thermometer or non-linear or individually weighted, depending on the transfer function requirement of the end-application).

In summary, the binary weighted version of the meshed digital-to-analog multiplication method utilizes a multi-branch binary-weighted current reference network, wherein each of the first binary weighted reference current branches (y-branch) supply the current reference inputs of the sets of second binary weighted reference current branches (set of x-branches). Accordingly, the digital X word or Dx₃₂ and the digital Y word or Dy₃₂ control the respective sets of analog switches that steer (or transmit) the combined respective x-branch analog signals to an output port (e.g., Sxy₃₂). Keep in mind that, the X and Y word bits and their respective X and Y DAC channels here are interchangeable give the commutative property of multiplication. Also keep in mind that it would be obvious for one skilled in the art to utilize the mD_(i)S_(O) method to arrange a meshed digital-to-analog squarer by multiplying a signal to itself.

Benefits of utilizing the meshed digital-to-analog multiplication method is discussed in the embodiments of the said method, next.

Section 32A—Description of FIG. 32A

FIG. 32A is another simplified block diagram illustrating the meshed digital-to-analog multiplication (mD_(i)S_(O)) method. For clarity and not as a limitation, the mD_(i)S_(O) method here is also described as receiving two digital words, each having 3-bits of resolution but the digital input word resolution can be higher as in for example 16-bits. The digital input bits are also meshed with analog circuitry, wherein they control a reference network that is arranged to perform bit-weight attribution and summation in the analog domain.

The mD_(i)S_(O) method of FIG. 32A is inputted with two digital input words that are x-bits wide (e.g., Dx_(32′) word with x=3) and y-bits wide (e.g., Dy_(32′) word with y=3). Here, the mD_(i)S_(O) method is also inputted with a reference signal (Sr) that is scaled onto three banks of scaled reference networks (e.g., the y1-bank comprising of 0.5×Sr_(32′), Sr_(32′), and 2Sr_(32′); the y2-bank comprising of Sr_(32′), 2Sr_(32′), and 4Sr_(32′); and the y3-bank comprising of 2Sr_(32′), 4Sr_(32′), and 8Sr_(32′)). Plurality of y-channel sub-DACs (e.g., DAC1 y _(32′), DAC2 y _(32′), and DAC3 y _(32′)) each receiving the one respective bit of a y-digital input word (e.g., D1 y _(32′), D2 y _(32′), and D3 y _(32′)).

A clarification point regarding the FIG. 32A illustration: In sub-DAC3 y _(32′), the digital bit D3 y _(32′) controls the 3 y-switches of sub-DAC3 y _(32′) whose inputs receive a sequence of scaled reference signals 8Sr_(32′), 4Sr_(32′), and 4Sr_(32′), wherein the 3 outputs of the sub-DAC3 y _(32′) are coupled to the 3 inputs of 3 x-switches of sub-DACx3 _(32′) wherein the x-switches of sub-DACx3 _(32′) are controlled by the digital x-word (e.g., D1 x _(32′) to D3 x _(32′) bits). Also, in sub-DAC2 y _(32′), the digital bit D2 y _(32′) controls the 3 y-switches of sub-DAC2 y _(32′) whose inputs receive a sequence of scaled reference signals 4Sr_(32′), 2Sr_(32′), and 1Sr_(32′), wherein the 3 outputs of the sub-DAC2 y _(32′) are coupled to the 3 inputs of 3 x-switches of sub-DACx2 _(32′) wherein the x-switches of sub-DACx2 _(32′) are controlled by the digital x-word (e.g., D1 x _(32′) to D3 x _(32′) bits). Lastly, in sub-DAC1 y _(32′), the digital bit D1 y _(32′) controls the 3 y-switches of sub-DAC1 y _(32′) whose inputs receive a sequence of scaled reference signals 2Sr_(32′), 1Sr_(32′), and 0.5Sr_(32′), wherein the 3 outputs of the sub-DAC1 y _(32′) are coupled to the 3 inputs of 3 x-switches of sub-DACx1 _(32′) wherein the x-switches of sub-DACx1 _(32′) are controlled by the digital x-word (e.g., D1 x _(32′) to D3 x _(32′) bits).

The D1 y _(32′) bit steers the three reference sources 0.5×Sr_(32′), Sr_(32′), and 2Sr_(32′) onto the three switches of DACx1 _(32′) which are controlled by D1 x _(32′), D2 x _(32′), and D3 x _(32′), respectively. The D2 y _(32′) bit steers the three reference sources Sr_(32′), 2Sr_(32′), and 4Sr_(32′) onto the three switches of DACx2 _(32′) which are controlled by D1 x _(32′), D2 x _(32′), and D3 x _(32′), respectively. And, the D3 y _(32′) bit steers the three reference sources 2Sr_(32′), 4Sr_(32′), and 8Sr_(32′) onto the three switches of DACx3 _(32′) which are controlled by D1 x _(32′), D2 x _(32′), and D3 x _(32′), respectively.

The outputs of x-channel sub-DACs (e.g., DACx1 _(32′), DACx2 _(32′), and DACx3 _(32′)) are combined to generate the final analog multiplication representation (Sxy_(32′)) of the digital X·Y multiplications. Here, the analog output or S_(O) of DACx1 _(32′), DACx2 _(32′), and DACx3 _(32′) are added together to generate Sxy_(32′). Note that for a binary (linear) multiplier, the (three) banks of scaled reference network is also binarily weighted, but the reference network can be scaled in other fashions (e.g., thermometer or non-linear).

Also keep in mind that it would be obvious for one skilled in the art to utilize the mD_(i)S_(O) method to arrange a meshed digital-to-analog squarer by multiplying a signal to itself.

In summary, the binary weighted version of the meshed digital-to-analog multiplication method utilizes banks of multi-branch binary-weighted current reference network, wherein each of the Y-banks of the binary weighted reference current branches (y-branch) supply the current reference inputs of the sets of X-banks of the binary weighted reference current branches (set of x-branches). Accordingly, the digital X word or Dx_(32′) and the digital Y word or Dy_(32′) control the respective sets of analog switches that steer (or transmit) the combined respective x-branch analog signals to an output port (e.g., Sxy_(32′)). Keep in mind that, the X and Y word bits and their respective X and Y DAC channels here are interchangeable given the commutative property of multiplication. Benefits of utilizing the meshed digital-to-analog multiplication method is discussed in the embodiments of the said method, next.

Section 33—Description of FIG. 33

FIG. 33 is a simplified circuit schematic illustrating a digital-input to analog current output multiplier (XD_(i)I_(O)) as a preferred embodiment of the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in the prior section 32A and illustrated in FIG. 32A. Similarly, for clarity and not as a limitation, the XD_(i)I_(O) multiplier is described as receiving two digital words, each having 3-bits of resolution wherein the digital input word resolution can be as high as 16-bits.

The XD_(i)I_(O) multiplier of FIG. 33 is inputted with two digital input words Dx₃₃ word (comprising of 3-bits D1 x ₃₃, D2 x ₃₃, and D3 x ₃₃) and Dy₃₃ word (comprising of 3-bits D1 y ₃₃, D2 y ₃₃, and D3 y ₃₃).

The XD_(i)I_(O) multiplier here is also inputted with a reference current signal (Ir) that is scaled onto a scaled reference network, comprising of 3 banks namely: First scaled reference current bank I1 r ₃₃=1×Ir, I2 r ₃₃=2×I_(r), and I4 r ₃₃=4×Ir. Second scaled reference current bank I2 r′ ₃₃=2×I_(r), I4 r′ ₃₃=4×I_(r), and I8 r′ ₃₃=8×Ir. Third scaled reference current bank I4 r″ ₃₃=4×I_(r), I8 r″ ₃₃=8×I_(r), and I16 r″ ₃₃=16×Ir.

A first y-channel sub-iDAC receives the first scaled reference bank (i.e., I1 r ₃₃, I2 r ₃₃, and I4 r ₃₃) at its current switch inputs that are the source-nodes of N1 y ₃₃, N1 y′ ₃₃, and N1 y″ ₃₃ whose gate-nodes are controlled by D1 y ₃₃ bit. Accordingly, I1 r ₃₃, I2 r ₃₃, and I4 r ₃₃ currents are respectively steered through, N1 y ₃₃, N1 y′ ₃₃, and N1 y″ ₃₃ which are gated by the D1 y ₃₃ bit, to provide the first x-channel sub-iDAC's reference input currents (in accordance with Dy₃₃ word). Consequently, the said first x-channel sub-iDAC reference currents are steered through current switches N1 x ₃₃, N2 x ₃₃, and N3 x ₃₃ that are controlled by the first x-channel DAC's digital inputs D1 x ₃₃, D2 x ₃₃, and D3 x ₃₃. The drain-node currents of N1 x ₃₃, N2 x ₃₃, and N3 x ₃₃ are summed together and coupled to Ixy₃₃, which is the analog current output port of XD_(i)I_(O) multiplier.

Similarly, a second y-channel sub-iDAC receives the second scaled reference bank (i.e., I2 r′ ₃₃, I4 r′ ₃₃, and I8 r′ ₃₃) at its current switch inputs that are the source-nodes of N2 y ₃₃, N2 y′ ₃₃, and N2 y″ ₃₃ whose gate-nodes are controlled by D2 y ₃₃ bit. Accordingly, I2 r′ ₃₃, I4 r′ ₃₃, and I8 r′ ₃₃ currents are respectively steered through N2 y ₃₃, N2 y′ ₃₃, and N2 y″ ₃₃ which are gated by the D2 y ₃₃ bit, to provide the second x-channel sub-iDAC's reference input currents (in accordance with Dy₃₃ word). Consequently, the said second x-channel sub-iDAC reference currents are steered through current switches N1 x′ ₃₃, N2 x′ ₃₃, and N3 x′ ₃₃ that are controlled by the second x-channel sub-DAC's same digital inputs D1 x ₃₃, D2 x ₃₃, and D3 x ₃₃. The drain-node currents of N1 x′ ₃₃, N2 x′ ₃₃, and N3 x′ ₃₃ are summed together and also coupled to Ixy₃₃.

Also, a third y-channel sub-iDAC receives the second scaled reference bank (i.e., I4 r″ ₃₃, I8 r″ ₃₃, and I16 r″ ₃₃) at its current switch inputs that are the source-nodes of N3 y ₃₃, N3 y′ ₃₃, and N3 y″ ₃₃ whose gate-nodes are controlled by D3 y ₃₃ bit. Accordingly, I4 r″ ₃₃, I8 r″ ₃₃, and I16 r″ ₃₃ currents are respectively steered through, N3 y ₃₃, N3 y′ ₃₃, and N3 y″ ₃₃ which are gated by the D3 y ₃₃ bit, to provide the third x-channel sub-iDAC's reference input currents (in accordance with Dy₃₃ word). Consequently, the said third x-channel sub-iDAC reference currents are steered through current switches N1 x″ ₃₃, N2 x″ ₃₃, and N3 x″ ₃₃ that are controlled by the third x-channel sub-DAC's same digital inputs D1 x ₃₃, D2 x ₃₃, and D3 x ₃₃. The drain-node currents of N1 x′ ₃₃, N2 x′ ₃₃, and N3 x′ ₃₃ are summed together and also coupled to Ixy₃₃.

As noted above, the outputs of the first and second and third x-channel iDACs are summed at Ixy₃₃ to generate the analog multiplication representation of X·Y digital multiplications. Note that for a binary (linear) multiplier, the scaled reference network (bank) is also binarily weighted, but the reference network can be scaled in other fashions (e.g., thermometer or non-linear).

Also keep in mind that it would be obvious for one skilled in the art to utilize the XD_(i)I_(O) multiplier to arrange a meshed digital-to-analog squarer by multiplying a signal to itself.

In summary some of the benefits of the embodiment disclosed in FIG. 33 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the dynamic response of XD_(i)I_(O) multiplier is fast also in part because the scaled reference network banks are constant current sources whose current are steered by single MOSFET switches which are inherently fast.

Third, current mirror loop associated with conventional multiplying iDACs (where a first iDAC's output signal supplies the reference signal to a second iDAC, generally through a current mirror) is avoided which helps the speed.

Fourth, the minimum power supply can be very low since it is only limited by the drain-to-source voltage of current sources of the scaled reference network.

Section 34—Description of FIG. 34

FIG. 34 is a simplified circuit schematic illustrating another preferred embodiment of a digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in section 32 and section 32A, and illustrated in FIG. 32 and FIG. 32A, respectively. Similarly, for clarity and not as a limitation, the XD_(i)I_(O) multiplier is described as receiving two digital words, each having 3-bits of resolution wherein the digital input word resolution can be as high as 16-bits.

The XD_(i)I_(O) multiplier of FIG. 34 is inputted with two digital input words Dx₃₄ word (comprising of 3-bits x1 ₃₄, x2 ₃₄, and x3 ₃₄) and Dy₃₄ word (comprising of 3-bits y1 ₃₄, y2 ₃₄, and y3 ₃₄).

The XD_(i)I_(O) multiplier here is also inputted with a reference current signal (i_(r)=Ir₃₄) that is mirrored and scaled (via Ny₃₄) onto a scaled reference network, comprising of 3 current sources: First scaled reference currents wherein the current through N1 y ₃₄=1×i_(r) that is split according to a programmed weight scale between N1 x ₃₄ (e.g., scaled at 1×), N2 x ₃₄ (e.g., scaled at 2×), and N3 x ₃₄ (e.g., scaled at 4×). Second scaled reference currents wherein the current through N2 y ₃₄=2×i_(r) that is split according to a programmed weight scale between N1 x′ ₃₄ (e.g., scaled at 1×), N2 x′ ₃₄ (e.g., scaled at 2×), and N3 x′ ₃₄ (e.g., scaled at 4×). Third scaled reference currents wherein the current through N3 y ₃₄=4×i_(r) that is split according to a programmed weight scale between N1 x″ ₃₄ (e.g., scaled at 1×), N2 x″ ₃₄ (e.g., scaled at 2×), and N3 x″ ₃₄ (e.g., scaled at 4×).

A first y-channel sub-iDAC receives the first scaled reference currents (i.e., I_(D) of N1 x ₃₄, N2 x ₃₄, and N3 x ₃₄) at its FET switch inputs (i.e., at source-nodes of coupled pairs M1 y ₃₄−M′1 y ₃₄, M1 y ₃₄−M′1 y ₃₄, and M1 y ₃₄−M′1 y ₃₄) whose gate-nodes are controlled by the y1 ₃₄ bit. Accordingly, the first y-channel sub-iDAC scaled reference currents, gated by the y1 ₃₄ bit, are outputted through the FETs switches (i.e., as I_(D) of M1 y ₃₄, M1 y′ ₃₄, and M1 y″ ₃₄), which provide the first x-channel sub-iDAC reference currents. Consequently, the said first x-channel sub-iDAC reference currents are steered through its FET current switches (i.e., at source-nodes of coupled pairs M1 x ₃₄−M′1 x ₃₄, M2 x ₃₄−M′2 x ₃₄, and M3 x ₃₄−M′3 x ₃₄) that are controlled by the first x-channel sub-DAC's digital inputs x1 ₃₄, x2 ₃₄, and x3 ₃₄. The drain-node currents of M1 x ₃₄, M2 x ₃₄, and M3 x ₃₄ are summed together and coupled to Ixy₃₄, which is the analog current output port of XD_(i)I_(O) multiplier. Also, notice that drain-nodes of M′1 y ₃₄, M′1 y′ ₃₄, and M′1 y″ ₃₄ are coupled together and terminated at a voltage source (V1 ₃₄). Similarly, drain-nodes of M′1 x ₃₄, M′2 x ₃₄, and M′3 x ₃₄ are coupled together and terminated at a voltage source (V1 ₃₄).

Similarly, a second y-channel sub-iDAC receives the second scaled reference currents (i.e., I_(D) of N1 x′ ₃₄, N2 x′ ₃₄, and N3 x′ ₃₄) at its FET switch inputs (i.e., at source-nodes of coupled pairs M2 y ₃₄−M′2 y ₃₄, M2 y ₃₄−M′2 y ₃₄, and M2 y ₃₄−M′2 y ₃₄) whose gate-nodes are controlled by the y2 ₃₄ bit. Accordingly, the second y-channel sub-iDAC scaled reference currents, gated by the y2 ₃₄ bit, are outputted through the FETs switches (i.e., as I_(D) of M2 y ₃₄, M2 y ₃₄, and M2 y″ ₃₄), which provide the second x-channel sub-iDAC reference currents. Consequently, the said second x-channel sub-iDAC reference currents are steered through its FET current switches (i.e., at source-nodes of coupled pairs M1 x′ ₃₄−M′1 x′ ₃₄, M2 x′ ₃₄−M′2 x′ ₃₄, and M3 x′ ₃₄-M′3 x′ ₃₄) that are controlled by the second x-channel sub-DAC's digital inputs x1 ₃₄, x2 ₃₄, and x3 ₃₄. The drain-node currents of M1 x′ ₃₄, M2 x′ ₃₄, and M3 x′ ₃₄ are summed together and coupled to Ixy₃₄ as well. Also, notice that drain-nodes of M′2 y ₃₄, M′2 y′ ₃₄, and M′2 y″ ₃₄ are coupled together and also terminated at V1 ₃₄. Similarly, drain-nodes of M′1 x′ ₃₄, M′2 x′ ₃₄, and M′3 x′ ₃₄ are coupled together and also terminated at V1 ₃₄.

Also, a third y-channel sub-iDAC receives the third scaled reference currents (i.e., I_(D) of N1 x″ ₃₄, N2 x″ ₃₄, and N3 x″ ₃₄) at its FET switch inputs (i.e., at source-nodes of coupled pairs M3 y ₃₄−M′3 y ₃₄, M3 y ₃₄−M′3 y ₃₄, and M3 y ₃₄−M′3 y ₃₄) whose gate-nodes are controlled by the y3 ₃₄ bit. Accordingly, the third y-channel sub-iDAC scaled reference currents, gated by the y3 ₃₄ bit, are outputted through the FETs switches (i.e., as I_(D) of M3 y ₃₄, M3 y ₃₄, and M3 y″ ₃₄), which provide the third x-channel sub-iDAC reference currents. Consequently, the said third x-channel sub-iDAC reference currents are steered through its FET current switches (i.e., at source-nodes of coupled pairs M1 x″ ₃₄−M′1 x″ ₃₄, M2 x″ ₃₄−M′2 x″ ₃₄, and M3 x″ ₃₄−M′3 x″ ₃₄) that are controlled by the third x-channel sub-DAC's digital inputs x1 ₃₄, x2 ₃₄, and x3 ₃₄. The drain-node currents of M1 x″ ₃₄, M2 x″ ₃₄, and M3 x″ ₃₄ are summed together and coupled to Ixy₃₄ as well. Also, notice that drain-nodes of M′3 y ₃₄, M′3 y′ ₃₄, and M′3 y″ ₃₄ are coupled together and also terminated at V1 ₃₄. Similarly, drain-nodes of M′1 x″ ₃₄, M′2 x″ ₃₄, and M′3 x″ ₃₄ are coupled together and also terminated at V1 ₃₄.

As such the outputs of the three x-channel sub-iDACs is summed at Ixy₃₄ to generate the analog multiplication representation of X·Y digital multiplications. Note that for a binary (linear) multiplier, the scaled reference network (bank) is also binarily weighted, but the reference network can be scaled in other fashions (e.g., thermometer or non-linear).

Note that coupling the iDAC switches gates to voltage sources V2 ₃₄ and V3 ₃₄ reduces logic gates that would otherwise be needed to drive the iDAC switches and it also reduces iDAC glitch (and thereby lowers the XD_(i)I_(O) multiplier glitch).

Also keep in mind that it would be obvious for one skilled in the art to utilize the XD_(i)I_(O) multiplier to arrange a meshed digital-to-analog squarer by multiplying a signal to itself.

In summary some of the benefits of the embodiment disclosed in FIG. 34 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the dynamic response of XD_(i)I_(O) multiplier is fast also in part because the scaled reference network banks are constant current sources whose current are steered by single MOSFET switches which are inherently fast.

Third, current mirror loop associated with conventional multiplying iDACs (where a first iDAC's output signal supplies the reference signal to a second iDAC, generally through a current mirror) is avoided which helps the speed.

Fourth, utilizing the floating iDAC method surrounding N3 y ₃₄, N2 y ₃₄, and N1 y ₃₄ reduces die area.

Fifth, biasing one side of the iDAC switches by voltage sources (V2 ₃₄ and V3 ₃₄) saves area and lowers the XD_(i)I_(O) multiplier glitch.

Section 35—Description of FIG. 35

FIG. 35 is a simplified circuit schematic illustrating another preferred embodiment of a digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in section 32. In the embodiment of FIG. 35, two digital words are inputted into a set of AND gates whose outputs (via current switches) control the steering of currents of a current reference network, wherein the current reference network is arranged to performs bit-weight attribution and summation in the analog domain (and in current mode).

FIG. 35 utilizes a x×y matrix of AND gates that are inputted with two digital input words that are x-bits wide (Dx₃₅ word) and y-bits wide (Dy₃₅ word). The outputs of AND gates generate one digital output word that is x×y bits wide (Dxy₃₅ word), wherein each bit of x×y bits wide word has a respective weight. In FIG. 35's multi-branch binary-weighted current reference network, each of the first binary weighted reference current branches (x-branch) supply the current reference inputs of the sets of second binary weighted reference current branches (set of y-branches). Accordingly, the Dxy₃₅ bits control the respective sets of analog current switches that steer the respective y-branch currents to either a positive (I1 o ₃₅) or a negative (I2 o ₃₅) output current ports. Here, I1 o ₃₅ and I2 o ₃₅ represent the analog current outputs of a digital input to analog current output multiplier (XD_(i)I_(O) ₁₃₅ ).

Consider that for descriptive clarity the embodiment of XD_(i)I_(O) ₁₃₅ is illustrated with only 3-bit (x-bits) by 3-bit (y-bits) digital input words, but the resolution can be higher (e.g., 3-bits to 12-bits). Moreover, the x and y bits and their respective iDAC channels here are interchangeable give the commutative property of multiplications.

A current reference (Ir′₃₅) is inputted and mirrored onto iDACx₃₅'s binary weighed current reference network, which constitutes the first binary weighted reference current branches (x-branch). The iDACx₃₅ current reference network is comprising of P4 x ₃₅ (scaled at 4×), P2 x ₃ (scaled at 2×), and P1 x ₃₅ (scaled at 1×).

In the FIG. 35 embodiment of a digital-input to analog current output multiplier (XD_(i)I_(O)) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method, the functions of Y-branch iDACs and Y-branch iDACs are meshed. Effectively, the multiplication function is performed by digitally decoding the digital X-word and digital Y-word and feeding the digitally decoded results onto respective pairs of iDAC1 x ₃₅ & iDAC1 y ₃₅, iDAC2 x ₃₅ & iDAC2 y ₃₅, and iDAC3 x ₃₅ & iDAC3 y ₃₅ which are arranged in a meshed structure.

Here also, the floating iDAC method (described earlier in section 1) is utilized, whereby each of the iDAC1 x ₃₅, iDAC2 x ₃₅, and iDAC3 x ₃₅ binary weighted reference current branches (via each of the respective PMOSFETs: P1 x ₃₅, P1 x ₃₅, and P1 x ₃₅) feed a respective current reference inputs of 3 floating y-branch iDACs, which are the next set of three binary weighted reference current branches (set of 3 y-branches: iDAC1 y ₃₅, iDAC2 y ₃₅, and iDAC3 y ₃₅).

First, the drain terminal of P1 x ₃₅ (scaled at 1×) is coupled with the reference current input port of a first floating iDAC1 y ₃₅ comprising of P14 y ₃₅ (scaled at 4×), P12 y ₃₅ (scaled at 2×), and P11 y ₃₅ (scaled at 1×).

Second, the drain terminal of P2 x ₃₅ (scaled at 2×) is coupled with the reference current input port of a second floating iDAC2 y ₃₅ comprising of P24 y ₃₅ (scaled at 4×), P22 y ₃₅ (scaled at 2×), and P21 y ₃₅ (scaled at 1×).

Third, the drain terminal of P4 x ₃₅ (scaled at 4×) is coupled with the reference current input port of a third floating iDAC3 y ₃₅ comprising of P44 y ₃₅ (scaled at 4×), P42 y ₃₅ (scaled at 2×), and P41 y ₃₅ (scaled at 1×).

The x-channel digital inputs (Dx₃₅ word) are D3 x ₃₅ (MSB) through D1 x ₃₅ (LSB). The y-channel digital inputs (Dy₃₅ word) are D3 y ₃₅ (MSB) through D1 y ₃₅ (LSB).

The digital decoding can be accomplished by an AND matrix (AND₃₅) that is inputted with digital input words Dx₃₅ and Dy₃₅, whose output is a 3×3 bits wide word (Dxy₃₅ word). As noted earlier, each bit of the Dxy₃₅ word has a respective weight and as such the Dxy₃₅ digital word controls the respective current switches of iDAC1 y ₃₅ (comprising of P11′₃₅, P12′₃₅, and P13′₃₅), iDAC2 y ₃₅ (comprising of P21′₃₅, P22′₃₅, and P23′₃₅), and iDAC3 y ₃₅ (comprising of P31′₃₅, P32′₃₅, and P34′₃₅). For example, when D3 x ₃₅ is high, then the output of the AND gates U34 y ₃₅ through U31 ₃₅ respond to D3 y ₃₅ through D1 y ₃₅ considering their respective weights. Accordingly, P4 x ₃₅ current (having its respective weight) flows onto P44 y ₃₅ through P41 y ₃₅, in response to D3 y ₃₅ through D1 y ₃₅ states, wherein P44 y ₃₅ through P41 y ₃₅ have their respective weights.

In the illustrated embodiment, to reduce glitch and lower dynamic current consumption and to save logic area, the inverters and the bus lines (that would otherwise be needed for the opposite polarity of the Dxy₃₅ word) are eliminated. To attain such benefits, the biasing voltage Vs₃₅ is coupled with the gate terminals of current switches of iDAC1 y ₃₅ (comprising of P11 ₃₅, P12 ₃₅, and P13 ₃₅), iDAC2 y ₃₅ (comprising of P21 ₃₅, P22 ₃₅, and P23 ₃₅), and iDAC3 y ₃₅ (comprising of P31 ₃₅, P32 ₃₅, and P34 ₃₅). The current switches P11′₃₅ through P34′₃₅ (whose outputs are coupled with the I1 o ₃₅ port) and P11 ₃₅ through P34 ₃₅ (whose outputs are coupled with the I2 o ₃₅ port) steer their respective currents onto the I1 o ₃₅ and I2 o ₃₅ ports in accordance with their digital selection, controlled by Dxy₃₅.

Notice that the 4X binary weighted (scaled) reference current through P4 x ₃₅ is passed on through (to the iDAC3 y ₃₅) depending on the sign of D3 x ₃₅, which is the MSB of the X-word. The 2X binary weighted (scaled) reference current through P2 x ₃₅ is passed on through (to the iDAC2 y ₃₅) depending on the sign of D2 x ₃₅, which is the middle-bit of the X-word. The 1X binary weighted (scaled) reference current through P1 x ₃₅ is passed on through (to the iDAC1 y ₃₅) depending on the sign of D1 x ₃₅, which is the LSB of the X-word.

The selected sums of (analog) current switch outputs of iDAC1 y ₃₅ through iDAC3 y ₃₅ are steered through the XD_(i)I_(O) ₃₅ 's current-output port(s) I1 o ₃₅ (and I2 o ₃₅) that generate the analog current product Ax₃₅×Ay₃₅/Ar₃₅, wherein Ax₃₅ is the analog current representation of the digital word Dx₃₅, Ay₃₅ is the analog current representation of the digital word Dy₃₅, and Ar₃₅ is scaled relative to reference current signal Ir′₃₅.

Bear in mind that the gate terminals of P11 y ₃₅ through P44 y ₃₅ are coupled with a bias voltage source Vr₃₅, which leaves enough V_(DS) headroom for P1 x ₃₅ through P4 x ₃₅. Moreover, P11 y ₃₅ through P44 y ₃₅ also function as cascoded FETs which can help increase the output impedance of the (XD_(i)I_(O) ₃₅ and) iDAC's current reference networks. Also consider that instead of a binary weighted current reference network for the iDACs, other thermometer, linear, or non-linear reference network can be programmed here for different objective transfer functions.

The disclosed XD_(i)I_(O) ₃₅ benefits from current mode operations, which has been discussed in this disclosure. Multiplying a 3×3 bit digital words generates a 6-bit word that can then be inputted to a 6-bit iDAC to generate a current output product. Digital multipliers are expensive and power hungry when they operate at full speed due to dynamic power consumption of logic gates whose numbers increase exponentially in with the length of a digital multiplier's input word. The embodiment of XD_(i)I_(O) ₃₅ that utilizes the disclosed mD_(i)I_(O) method requires a larger size current reference network compared to that of a conventional a 6-bit iDAC but it requires a substantially smaller digital logic, which net-net has the benefit of yielding a smaller die size.

Section 36—Description of FIG. 36

FIG. 36 is a simplified block diagram illustrating a first non-linear digital-to-analog converter (NDAC) method. For clarity and not as a limitation, the NDAC method is described as one with a square transfer function. Utilizing the first NDAC method, Most-Significant-Portion (MSP) signals and Least-Significant-Portion (LSP) signals are generated utilizing both non-linear DACs and linear DACs. The transfer function of a non-linear MSP DAC can be arranged to follow a square transfer function or other profiles including but not limited to logarithmic, wherein the linear LSP DACs can be arranged as a linear straight-line approximation to fill the gaps in-between the non-linear MSP DAC's output segment.

The first NDAC method of FIG. 36 is inputted with a digital input word (D36) comprising of a Most-Significant-Bit (MSB) bank word or Dm₃₆ that is m-bits wide, and a Least-Significant-Bit (LSB) bank word or Dn₃₆ that is n-bits wide, and wherein D₃₆ is m+n bits wide.

The first NDAC method of FIG. 36 is provided with a non-linear MSP DAC (DACQ₃₆) that is inputted with the Dm₃₆ word. Moreover, DACQ₃₆ is inputted with a reference signal RSQ₃₆. The reference network of DACQ₃₆ is programmed to follow a non-linear transfer function such as a square in this illustration.

Furthermore, the first NDAC method of FIG. 36 is provided with a linear LSP DAC (DAC1L₃₆) that is inputted with the Dn₃₆ word. The DAC1L₃₆ is inputted with a reference signal RL1 ₃₆, wherein the magnitude of RL1 ₃₆ is proportional to that of RSQ₃₆. The reference network of DAC1L₃₆ is programmed to follow a linear transfer function such as binary.

Moreover, the first NDAC method of FIG. 36 is provided with another linear LSP DAC (DAC2L₃₆) that is inputted with the multiplication product of Dm₃₆×Dn₃₆ words. The DAC2L₃₆ is inputted with a reference signal RL2 ₃₆, wherein the magnitude of RL2 ₃₆ is also proportional to that of RSQ₃₆. The reference network of DAC2L₃₆ is also programmed to follow a linear transfer function such as binary.

The linear outputs of DAC1L₃₆ and DAC2L₃₆ are combined together to generate an output that serves as a straight line approximation to fill the gaps in-between MSP segments of the output of the non-linear DACQ₃₆. Utilizing the first NDAC method, a non-linear output signal (CO₃₆) can be generated which is an analog non-linear representation of D₃₆, as a function of an analog reference signal (e.g., scaled RSQ₃₆ signal).

It would be obvious to one skilled in the art that DACQ₃₆ function can be realized by utilizing a square (non-linear) digital logic circuit. Such square (non-linear) digital logic circuit would receive an (MSP bank) digital-input word and generates a (non-linear) square digital-output word. Then, the digital (non-linear) square output word can be applied to a linear DAC to generate the equivalent (non-linear) square MSP analog output signal.

In summary, the first non-linear digital-to-analog converter (NDAC) method of FIG. 36 is provided with at least one non-linear MSP DAC whose output is combined with at least on linear LSP DAC, wherein the output of linear LSP DAC(s) fill the gap in-between the non-linear MSP DAC output segments. Benefits of utilizing the NDAC method is later discussed in the embodiments of the said method.

Section 36A—Description of FIG. 36A

FIG. 36A is a simplified block diagram illustrating a second non-linear digital-to-analog converter (NDAC) method, which utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method that is discussed in section 32 and illustrated in FIG. 32. Utilization of the mD_(i)S_(O) method is one of the differences between the second non-linear NDAC method and the first NDAC method disclosed in section 36 and the third NDAC method disclosed in section 37. For clarity and not as a limitation, the second NDAC method is also described as one with a square transfer function. Utilizing the second NDAC method, Most-Significant-Portion (MSP) signals and Least-Significant-Portion (LSP) signals can be generated utilizing non-linear DACs, a meshed digital-input analog-output multiplier, and a linear offset DACs. The transfer function of a non-linear MSP DAC can be arranged to follow a square transfer function or other profiles including but not limited to logarithmic, wherein the linear offset DAC in concert with the meshed digital-input analog-output multiplier can be arranged as a linear straight-line approximation to fill the gaps in-between the non-linear MSP DAC's output segment.

The second NDAC method of FIG. 36A is inputted with a digital input word (D_(36′)) comprising of a Most-Significant-Bit (MSB) bank word or Dm_(36′) that is m-bits wide, and a Least-Significant-Bit (LSB) bank word or Dn_(36′) that is n-bits wide, and wherein D_(36′) is m+n bits wide.

The second NDAC method of FIG. 36A is provided with a non-linear MSP DAC (DACQ_(36′)) that is inputted with the Dm_(36′) word. Moreover, DACQ_(36′) is inputted with a reference signal RSQ_(36′). The reference network of DACQ_(36′) is programmed to follow a non-linear transfer function such as a square in this illustration.

Furthermore, the second NDAC method of FIG. 36A is provided with a linear offset LSP DAC (DAC1L_(36′)) that is inputted with the Dn_(36′) word. The DAC1L_(36′) is inputted with a reference offset signal RL1 _(36′), wherein the magnitude of RL1 _(36′) signal is proportional to that of RSQ_(36′) signal. The reference network of DAC1L_(36′) is programmed to follow a linear transfer function such as binary.

Moreover, the NDAC method of FIG. 36A is provided with a meshed digital-to-analog multiplier (XDiSo_(36′)), which utilizes the meshed digital-to-analog multiplication method (mD_(i)S_(O)) disclosed in section 32. The XDiSo_(36′) is inputted with a reference signal (RL2 _(36′)), wherein the magnitude of RL2 _(36′) signal is also proportional to that of RSQ_(36′) signal. The reference network of DAC2L_(36′) is also programmed to follow a linear transfer function such as binary.

The linear outputs of DAC1L_(36′) and XDiSo_(36′) are combined together to generate an output that serves as a straight line approximation to fill the gaps in-between MSP segments of the output of the non-linear DACQ₃₆-. Utilizing the second NDAC method, a non-linear output signal (CO_(36′)) can be generated which is an analog non-linear representation of D_(36′), as a function of an analog reference signal (e.g., scaled RSQ_(36′) signal).

It would be obvious to one skilled in the art that DACQ₃₆, function can be realized by utilizing a square (non-linear) digital logic circuit. Such square (non-linear) digital logic circuit would receive an (MSP bank) digital-input word and generates a (non-linear) square digital-output word. Then, the digital (non-linear) square output word can be applied to a linear DAC to generate the equivalent (non-linear) square MSP analog output signal.

In summary, the non-linear digital-to-analog converter (NDAC) method of FIG. 36A is provided with at least one non-linear MSP DAC whose output is combined with a meshed digital-to-analog multiplier and at least on linear (offset) LSP DAC, wherein the combined outputs of the meshed digital-to-analog multiplier, and the linear LSP DAC(s), fill the gap in-between the non-linear MSP DAC output segments. Benefits of utilizing the NDAC method is later discussed in the embodiments of the said method.

Section 37—Description of FIG. 37

FIG. 37 is a simplified block diagram illustrating a third non-linear digital-to-analog converter (NDAC) method. For clarity and not as a limitation, the third NDAC method here is also described as one with a square transfer function. Utilizing the third NDAC method, Most-Significant-Portion (MSP) signals generated by a non-linear MSP DAC are combined with and Least-Significant-Portion (LSP) signals generated by a pair of linear LSP DACs which are arranged in a multiplying fashion. The non-linear MSP DACs can also be arranged to follow a square (or other) profile(s) including but not limited to logarithmic, wherein the linear LSP DACs can also be arranged as a linear straight-line approximation to fill the gaps in-between the outputs of the non-linear MSP DAC segment.

The third NDAC method of FIG. 37 is inputted with a digital input word (D₃₇) comprising of a Most-Significant-Bit (MSB) bank word or Dm₃₇ that is m-bits wide, and a Least-Significant-Bit (LSB) bank word or Dn₃₇ that is n-bits wide, and wherein D₃₇ word is m+n bits wide.

The third NDAC method of FIG. 37 is provided with a non-linear MSP DAC (DACQ₃₇) that is inputted with the Dm₃₇ word. Moreover, DACQ₃₇ is inputted with a reference signal RSQ₃₇. The reference network of DACQ₃₇ is programmed to follow a non-linear transfer function such as a square in this illustration.

Furthermore, the third NDAC method of FIG. 37 is provided with a linear LSP DAC (DAC1L₃₇) that is inputted with the MSB bank word Dm₃₇. The DAC1L₃₇ is also inputted with a reference signal RL1 ₃₇, wherein the magnitude of RL1 ₃₇ is also proportional to that of RSQ₃₇. The reference network of DAC1L₃₇ is also programmed to follow a linear transfer function such as binary.

Moreover, the third NDAC method of FIG. 37 is provided with another linear LSB DAC (DAC2L₃₇) that is inputted with the LSB bank word or Dn₃₆. The output of DAC1L₃₇ is combined with a reference signal (RL2 ₃₇) and the said combined resultant signal is supplied to the reference input port of DAC2L₃₇. Note that the magnitude of RL1 ₃₇ signal and RL1 ₃₇ signal is also proportional to RSQ₃₇ signal.

The output the linear DAC2L₃₇ serves as a straight-line approximation to fill the gaps in-between Most-Significant-Portion (MSP) output segments of the non-linear DACQ₃₆. Utilizing the third NDAC method, a non-linear output signal (CO₃₇) can be generated which is an analog non-linear representation of D₃₇, as a function of an analog reference signal (e.g., scaled RSQ₃₇ signal).

It would be obvious to one skilled in the art that DACQ₃₇ function can be realized by utilizing a square (non-linear) digital logic circuit. Such square (non-linear) digital logic circuit would receive an (MSP bank) digital-input word and generates a (non-linear) square digital-output word. Then, the digital (non-linear) square output word can be applied to a linear DAC to generate the equivalent (non-linear) square MSP analog output signal.

In summary, the third non-linear digital-to-analog converter (NDAC) method of FIG. 37 is provided with at least one non-linear MPS DAC whose output is combined with a pair of linear LSP multiplying DACs, wherein the output of a first multiplying DAC is coupled with the reference input of a second multiplying DAC, and wherein the output of the second multiplying DAC fill the gap in-between the non-linear MSP DAC segments. Benefits of utilizing the third NDAC method is later discussed in the embodiments of the said method.

Section 38—Description of FIG. 38

FIG. 38 is a simplified circuit schematic illustrating an embodiment of a non-linear digital-input to analog current output digital-to-analog converter (iNDAC₃₈), which utilizes the NDAC method described in section 37 and illustrated in FIG. 37, wherein the non-linear output profile of iNDAC₃₈ is programmed to approximate a square transfer function.

For clarity of description and illustration, FIG. 38 illustrates only 6-bit iDACs, but this illustration is not a limitation of the disclosure here. Here, the digital input word (Di₃₈) is comprising of D6 ₃₈, D5 ₃₈, D4 ₃₈, D3 ₃₈, D2 ₃₈, and D1 ₃₈ bits. Depending on an application requirement, the disclosed iDAC can, for example, have 16-bits of resolution.

The non-linear Most-Significant-Portion (MSP) DAC (iDACQ₃₈) is a non-linear thermometer iDAC. The iDACQ₃₈ non-linear thermometer reference current network is comprised of I1 r ₃₈=i_(r), I1 r ₃₈=3i_(r), I1 r ₃₈=Sir, I1 r ₃₈=7i_(r), I1 r ₃₈=9i_(r), I1 r ₃₈=11i_(r), and I1 r ₃₈=13i_(r), wherein i_(r) is a (unit) scaled reference signal. By inputting the MSB bank word (D6 ₃₈, D5 ₃₈, and D4 ₃₈) to a 3-bit input to 7-bit output digital encoder (ENC₃₈), a 7-bit digital word is generated. The 7-bit output word of ENC₃₈ control the current switches P1 t ₃₈, P2 t ₃₈, P3 t ₃₈, P4 t ₃₈, P5 t ₃₈, P6 t ₃₈, and P7 t ₃₈, whose inputs are couple to their respective non-linear current source segments of the non-linear thermometer reference current network. The current switches control the steering of the non-linear current source segments. The outputs of the current switches are coupled together at node iQ₃₈ wherein a non-linear MSP current signal is generated that approximates a square profile.

The first linear Least-Significant-Portion (LSP) iDAC (iDAC1L₃₈) is a linear binary weighted iDAC. The iDAC1L₃₈ binary weighted reference current network is comprised of I9 r ₃₈=8i_(r), I10 r ₃₈=4i_(r), and I11 r ₃₈=2i_(r). The MSB bank word (D6 ₃₈, D5 ₃₈, and D4 ₃₈) controls the current switches P6 d ₃₈, P5 d ₃₈, and P4 d ₃₈ whose inputs are couple to their respective binary-weighted current sources (e.g., I9 r ₃₈=8i_(r), I10 r ₃₈=4i_(r), and I11 r ₃₈=2i_(r)). The P6 d ₃₈, P5 d ₃₈, and P4 d ₃₈ current switches control the steering of the respective binary-weighted current sources. The outputs of P6 d ₃₈, P5 d ₃₈, and P4 d ₃₈ current switches are coupled together at node i1L₃₈ wherein a first linear LSP current signal is generated.

An offset reference signal I8 r ₃₈=i_(r) is also coupled to the i1L₃₈ node, which is then coupled to the reference current input port of the second linear LSP iDAC (iDAC2L₃₈).

The second linear LSP iDAC or iDAC2L₃₈ is also a linear binary weighted iDAC. The iDAC2L₃₈ binary scaled reference current network is comprised of PMOSFETs: Pf₃₈ @ 1X, P1 d′ ₃₈@1X, P2 d′ ₃₈@2X, and P3 d′ ₃₈@4X. The LSB bank word (D1 ₃₈, D2 ₃₈, and D3 ₃₈) controls the current switches P1 d ₃₈, P2 d ₃₈, and P3 d ₃₈ whose inputs are couple to their respective binary-scaled current dividers (e.g., P1 d′ ₃₈@1X, P2 d′ ₃₈@2X, and P3 d′ ₃₈@4X). The P1 d ₃₈, P2 d ₃₈, and P3 d ₃₈ current switches control the steering of the respective binary-scaled current divider of the (reference input current of iDAC2L₃₈) supplied through the i1L₃₈ node. The outputs of P1 d ₃₈, P2 d ₃₈, and P3 d ₃₈ current switches are coupled together at node i2L₃₈ wherein a second linear LSP current signal is generated.

The i2L₃₈ node and node iQ₃₈ node are coupled together and coupled to the output node of the iNDAC₃₈ which is iCO₃₈.

Note that the current signals at the i2L₃₈ port fills-in the gap between the current signals at the A_(QM) port. As such, the signal at node iCO₃₈ follows an approximate profile that is squarely weighted, as a function of the i_(r), and is responsive to the Di₃₈ word.

In summary some of the benefits of the embodiment disclosed in FIG. 38 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the dynamic response of the non-linear iDAC is fast also in part because the scaled reference network banks utilized in the non-linear MSP, first linear LSP, and second linear LSP iDACs are constant current sources whose current are steered by single MOSFET switches which are inherently fast.

Third, current mirror loop associated with conventional multiplying iDACs (where a first linear LSP iDAC's output signal supplies the reference signal to a second linear LSP iDAC, generally through a current mirror) is avoided which helps the speed.

Fourth, utilizing the floating iDAC method surrounding the first linear LSP iDAC and second linear LSP iDAC reduces die area and cost.

Fifth, the iNDAC₃₈ enables making a fast and low-cost digital input to current analog output multiplier using the quarter square procedure. Here, by subtracting the current outputs of two iNDAC₃₈ a multiplication 4X·Y can be generated, wherein the first iNDAC₃₈ receives the sum of two digital words and generates (X+Y)² and the second iNDAC₃₈ receives the difference of the same two digital words and generates (X−Y)².

Section 39—Description of FIG. 39

FIG. 39 is a simplified circuit schematic illustrating another embodiment of a non-linear digital-input to analog current output digital-to-analog converter (iNDAC₃₉), which utilizes the NDAC method described in section 36A and illustrated in FIG. 36A, wherein the non-linear output profile of iNDAC₃₉ is programmed to approximate a square transfer function. To generate a liner LSP current signal, the embodiment of FIG. 39 also utilizes another embodiment of a digital-input to current analog-output multiplier (XDiIo₃₉) that utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method that is discussed in sections 32 and 32A, and illustrated in FIGS. 32 and 32A. Bear in mind that XDiSo₃₉ multiplier is similar to the XD_(i)I_(O) disclosed in section and illustrated in FIG. 35.

For clarity of description and illustration, FIG. 39 illustrates only 6-bit iNDACs, but this illustration is not a limitation of the disclosure here. Here, the digital input word (Di₃₉) is comprising of D6 ₃₉, D5 ₃₉, D4 ₃₉, D3 ₃₉, D2 ₃₉, and D1 ₃₉ bits. Depending on an application requirement, the disclosed iDAC can, for example, have 16-bits of resolution.

The non-linear Most-Significant-Portion (MSP) DAC (iDACQ₃₉) is arranged as a non-linear thermometer iDAC. The iDACQ₃₉ non-linear thermometer reference current network is comprised of PMOSFETs whose drain currents are scaled as follows: P1 t ₃₉@i_(r), P1 t ₃₉@3i_(r), P1 t ₃₉@5i_(r), P1 t ₃₉@7i_(r), P1 t ₃₉@9i_(r), P1 t ₃₉@11i_(r), and P1 t ₃₉@13i_(r), wherein i_(r) is a (unit) scaled reference signal programmed by Ir₃₉=1i_(r). By inputting the MSB bank word (D6 ₃₉, D5 ₃₉, and D4 ₃₉) to a 3-bit input to 7-bit output digital encoder (ENC₃₉), a 7-bit digital word is generated. The 7-bit output word of ENC₃₉ control the PMOSFET current switches comprising of s1 t ₃₉, s2 t ₃₉, s3 t ₃₉, s4 t ₃₉, s5 t ₃₉, s6 t ₃₉, and s7 t ₃₉, whose inputs are couple to their respective non-linear current source segments of the respective non-linear thermometer reference current network. As such, the current switches control the steering of the non-linear current source segments onto the outputs of the said current switches which are coupled together at the output node iQ₃₉.

The first linear offset Least-Significant-Portion (LSP) iDAC (iDAC1L₃₉) is a linear binary weighted iDAC. The iDAC1L₃₉ binary weighted reference current network is comprised of PMOSFETs whose drain currents are scaled at: P1 f ₃₉@½i_(r), P2 f ₃₉@ i_(r) and P3 f ₃₉@ 2i_(r). The LSB bank word (D1 ₃₉, D2 ₃₉, and D3 ₃₉) controls the PMOSFET current switches P1 f ₃₉, P2 f ₃₉, and P3 f ₃₉ whose inputs are couple to their respective binary-weighted PMOSFET current sources (e.g., P1 f ₃₉@ 0.5X, P2 f ₃₉@ 1X, and P3 f ₃₉@ 2X). The P1 f ₃₉, P2 f ₃₉, and P3 f ₃₉ current switches control the steering of the respective binary-weighted current sources. The outputs of P1 f ₃₉, P2 f ₃₉, and P3 f ₃₉ current switches are coupled together at node iQ₃₉.

To generate the linear LSP output signal, the iNDAC₃₉ also utilizes the XDiSo₃₉ meshed multiplier, which utilizes the mD_(i)S_(O) method.

Similar to the XD_(i)I_(O) disclosed in section 35 and illustrated in FIG. 35, here in how XDiIo₃₉ of FIG. 39 is arranged:

The D4 ₃₉ bit is AND gated (e.g., via U41 ₃₉, U42 ₃₉, and U43 ₃₉) with the LSB bank word (D3 ₃₉, D2 ₃₉, D1 ₃₉) to generate the control signals for a first sub-iDAC switches (s1L₃₉, s2L₃₉, and s3L₃₉). The first sub-iDAC switches steer the first bank of binary weighted current reference signals (generated by the PMOSFET binary scaled current reference sources: P1L₃₉@ 1X, P2L₃₉@ 2X, and P3L₃₉@ 4X), wherein the full scale of the first sub-iDAC is 7i_(r). The output of the first sub-iDAC switches are also coupled together at node iQ₃₉.

The D5 ₃₉ bit is also AND gated (e.g., via U51 ₃₉, U52 ₃₉, and U53 ₃₉) with the LSB bank word (D3 ₃₉, D2 ₃₉, D1 ₃₉) to generate the control signals for a second sub-iDAC switches (s1L′₃₉, s2L′₃₉, and s3L′₃₉). The second sub-iDAC switches steer the second bank of binary weighted current reference signals (generated by the PMOSFET binary scaled current reference sources: P1L′₃₉@ 2X, P2L′₃₉@ 4X, and P3L′₃₉@ 8X), wherein the full scale of the second sub-iDAC is 14i_(r). The output of the second sub-iDAC switches are also coupled together at node iQ₃₉.

The D6 ₃₉ bit is also AND gated (e.g., via U61 ₃₉, U62 ₃₉, and U63 ₃₉) with the LSB bank word (D3 ₃₉, D2 ₃₉, D1 ₃₉) to generate the control signals for a third sub-iDAC switches (s1L″₃₉, s2L″₃₉, and s3L″₉). The third sub-iDAC switches that steer the third bank of binary weighted current reference signals (generated by the PMOSFET binary scaled current reference sources: P1L″₃₉@ 4X, P2L″₃₉@ 8X, and P3L″₃₉@ 16X), wherein the full scale of the second sub-iDAC is 28i_(r). The output of the third sub-iDAC switches are also coupled together at node iQ₃₉.

Notice that the current output signal of the XDiIo₃₉ combined with the output signal of at the linear offset iDAC1L₃₉ fills-in the gap between segments of the current signal of the iDACQ₃₉. As such, the signal at node iQ₃₉ follows an approximate squarely weighted profile, that is a function of the i_(r), and is responsive to the Di₃₉ word.

In summary some of the benefits of the iNDAC₃₉ embodiment disclosed in FIG. 39 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the dynamic response of the non-linear iDAC is fast also in part because the scaled reference network banks utilized in the non-linear MSP and the linear LSP segments are constant current sources whose current are steered by single MOSFET switches which are inherently fast.

Third, current mirror loop associated with conventional multiplying iDACs (where for example a first linear LSP iDAC's output feeds the reference input port of a second linear LSP iDAC, generally through a current mirror) is avoided which helps the speed.

Fourth, utilizing a meshed digital input to analog output multiplier XDiIo₃₉ is fast and can operate with low V_(DD).

Fifth, the iNDAC₃₉ enables making a fast and low-cost digital input to current analog output multiplier using the quarter square procedure. Here, by subtracting the current outputs of two iNDAC₃₉ a multiplication 4A·B can be generated, wherein the first iNDAC₃₉ receives the sum of two digital words and generates (A+B)² and the second iNDAC₃₉ receives the difference of the same two digital words and generates (A−B)².

Sixth, the disclosed iNDAC₃₉ power consumption is event driven in that if there is not event (e.g., data polarity of zero), the iDACs and XDiIo₃₉ shut of their respective current sources and hence power down.

Section 40—Description of FIG. 40

FIG. 40 is a simplified circuit schematic illustrating another embodiment of the digital-input to analog current output multiplier (XD_(i)I_(O)). The XD_(i)I_(O) ₄₀ multiplier utilizes the meshed digital-to-analog multiplication (mD_(i)S_(O)) method (described in the prior section 32A and illustrated in FIG. 32A), the multiple-channel data-converter method (disclosed in section 19 and illustrated in FIG. 19), and a second power supply desensitization method (PSR) disclosed here.

The XD_(i)I_(O) of FIG. 40 (XD_(i)I_(O) ₄₀ ) utilizes a reference bias network circuit (RBN₄₀) which is an embodiment of the multiple-channel data-converter method (disclosed in section 19 and illustrated in FIG. 19), which can save silicon area and improve the dynamic performance sub-iDACs, and thereby improve performance and reduce die size of the XD_(i)I_(O) ₄₀ . For clarity only one channel of XD_(i)I_(O) is described here, but a sea of XD_(i)I_(O) s can be biased from the same reference bias network to bias the sea of XD_(i)I_(O) multipliers.

The XD_(i)I_(O) ₄₀ multiplier also utilizes the second multiplier power supply desensitization method in the PRS₄₀ circuit that can substantially desensitize XD_(i)I_(O) ₄₀ multiplier's output current from power supply variations, while eliminating cascodes from current sources utilized in the current reference networks in the XD_(i)I_(O) ₄₀ multiplier (which saves more area).

Also, for clarity and not as a limitation, the XD_(i)I_(O) ₄₀ multiplier is described as receiving two digital words, each having 3-bits of resolution, but the digital input word resolution can be as high as 16-bits.

The three sections of XD_(i)I_(O) multiplier circuit, comprising of RBN₄₀, PSR₄₀, and XD_(i)I_(O) ₄₀ multiplier, is briefly described here:

In FIG. 40, a RBN₄₀ generates a sequence of individual binary weighted reference bias currents as follows: P16 r ₄₀ operating at I16 r ₄₀ of (2⁵⁻¹)×i=16i_(r40); P8 r ₄₀ operating at I8 r ₄₀ of (2⁴⁻¹)×i=8i_(r40); P4 r ₄₀ operating at I4 r ₄₀ of (2³⁻¹)×i=4i_(r40); P2 r ₄₀ operating at I2 r ₄₀ of (2²⁻¹)×i=2i_(r40); and P1 r ₄₀ operating at I1 r ₄₀ of (2¹⁻¹)×i=1i_(r40). In the embodiment of FIG. 40, RBN₄₀ is comprised of a sequence of CCVS which are implemented as a sequence of diode connected NMOSFETs (N16 r ₄₀, N8 r ₄₀, N4 r ₄₀, N2 r ₄₀, and N1 r ₄₀) whose gate and drain ports are coupled together, wherein each NMOSFET is scaled with a W/L=1X. Accordingly, the sequence of binary weighted reference bias currents I16 r ₄₀ to I1 r ₄₀ are inputted to the diode connected NMOSFETs (CCVS) which generate a sequence of (gate-to-source) reference bias voltages from reference bias voltage bus V16 ₄₀ to reference bias voltage bus V1 ₄₀ as follows: I_(D) of P16 r ₄₀=16i_(r40) is inputted to the diode connected N16 r ₄₀ to generate a reference bias bus voltage of V16 ₄₀; I_(D) of P8 r ₄₀=8i_(r40) is inputted to the diode connected N8 r ₄₀ to generate a reference bias bus voltage of V8 ₄₀; I_(D) of P4 r ₄₀=4i_(r40) is inputted to the diode connected N4 r ₄₀ to generate a reference bias bus voltage of V4 ₄₀; I_(D) of P2 r ₄₀=2i_(r40) is inputted to the diode connected N2 r ₄₀ to generate a reference bias bus voltage of V2 ₄₀; and I_(D) of P1 r ₄₀=1i_(r40) is inputted to the diode connected N1 r ₄₀ to generate a reference bias bus voltage of V1 ₄₀.

The NMOSFET current sources of the XD_(i)I_(O) ₄₀ multiplier are biased by coupling their gate-port to the respective (reference bias network) RBN₄₀'s voltage bus comprising of V16 ₄₀ to V1 ₄₀ as follows:

For the first sub-iDAC of the meshed XD_(i)I_(O) ₄₀ multiplier, the gate ports of NMOSFET current sources N1 v ₄₀, N2 v ₄₀, and N4 v ₄₀ are coupled with reference bias voltage buses of RBN₄₀ comprising of V1 ₄₀, V2 ₄₀, and V4 ₄₀, respectively. Accordingly, the drain currents (scaled reference current sources) of N1 v ₄₀, N2 v ₄₀, and N4 v ₄₀ operate at 1r₄₀, 2i_(r40), and 4i_(r40), respectively.

For the second sub-iDAC of the meshed XD_(i)I_(O) ₄₀ multiplier, the gate ports of NMOSFET current sources N2 v′ ₄₀, N4 v′ ₄₀, and N8 v′ ₄₀ are coupled with reference bias voltage buses of RBN₄₀ comprising of V2 ₄₀, V4 ₄₀, and V8 ₄₀, respectively. Accordingly, the drain currents (scaled reference current sources) of N2 v′ ₄₀, N4 v′ ₄₀, and N8 v′ ₄₀ operate at 2i_(r40), 4i_(r40), and 8i_(r40), respectively.

For the third sub-iDAC of the meshed XD_(i)I_(O) ₄₀ multiplier, the gate ports of NMOSFET current sources N4 v″ ₄₀, N8 v″ ₄₀, and N16 v″ ₄₀ are coupled with reference bias voltage buses of RBN₄₀ comprising of V4 ₄₀, V8 ₄₀, and V16 ₄₀, respectively. Accordingly, the drain currents (scaled reference current sources) of N4 v″ ₄₀, N8 v″ ₄₀, and N16 v″ ₄₀ operate at 4i_(r40), 8i_(r40), and 16i_(r40), respectively.

As indicated earlier, the PSR₄₀ circuit utilizes a second PSR method. In the embodiment of PSR₄₀ illustrated in FIG. 40, results in substantial area savings by eliminating the cascode from current sources in the sub-iDACx₄₀s of the XD_(i)I_(O) ₄₀ multiplier as well as from that of the RBN₄₀ circuits, while the output current of XD_(i)I_(O) ₄₀ multiplier is substantially desensitized from V_(DD) variations. This is done by regulating the reference bias currents of RBN₄₀ so that the outputs of the sub-iDACx₄₀s of the XD_(i)I_(O) ₄₀ multiplier are substantially desensitized to power supply variations.

The second power supply desensitization (PSR) method utilized in the PSR₄₀ circuit is briefly explained as follows:

A central reference bias current network (RBN), free of cascodes, generates a reference bias voltage bus, wherein the reference bias voltage bus is shared with a plurality of reference bias current networks of a plurality of cascode-free data-converters. To substantially desensitize the plurality of output currents of the plurality of cascode-free data-converters, a power supply desensitization circuit tracks the power supply variations and varies each reference bias currents of the central RBN. Utilization of the second PSR method PSR₄₀ is described next. in Bear in mind that FET early voltage (V_(A)) causes the FET's I_(DS) to vary with varying the FET's V_(DS). Also, keep in mind that the output port of the XD_(i)I_(O) ₄₀ multiplier could be coupled to an input of a current-mode analog-to-digital converter (iADC), wherein the input port of the iADC could be biased at a V_(GS) of a MOSFET below or above the V_(DD) or V_(SS), respectively (e.g., V_(DD)−Vgs_(PMOS)). As such, assuming little voltage drop across current switches of the sub-iDACs of the XD_(i)I_(O) ₄₀ multiplier, the drain-terminals of the (digitally selected) scaled reference current sources of the XD_(i)I_(O) ₄₀ multiplier would be biased at V_(DD)−Vgs_(PMOS) as well. Additionally, keep in mind that the drain-to-source voltage (V_(DS)) of current sources of the RBN₄₀ (e.g., P16 r ₄₀, P8 r ₄₀, P4 r ₄, P2 r ₄₀, and P1 r ₄₀) is V_(DS) V_(DD)−Vgs_(NMOS). In order to substantially desensitize the output current of the XD_(i)I_(O) ₄₀ multiplier from V_(DD) variations, the PSR₄₀ is arranged to operates as follows: P3 d ₄₀ regulates the I_(D) of the diode-connected N2 d ₄₀ (i.e., Vgs_(NMOS)) whose current is mirrored onto N1 d ₄₀. The I_(D) of N1 d ₄₀ is coupled into the diode connected P2 d ₄₀ (i.e., Vgs_(PMOS)) whose I_(D) is mirrored onto P1 d ₄₀. The I_(D) of P1 d ₄₀ is substantially equal to that of the scaled reference current or i_(r40). Accordingly, as the V_(DD) is varied, the gate port of P3 d ₄₀ regulates the magnitude of the current sources of the RBN₄₀ so that the current sources of the RBN₄₀ track the scaled reference current or i_(r40), which is substantially stable by design. In summary, the disclosed arrangement could substantially desensitize the XD_(i)I_(O) ₄₀ multiplier from V_(DD) variations while all current sources of the sub-iDACx₄₀s of the XD_(i)I_(O) ₄₀ multiplier and that of the RBN₄₀ current sources are without cascodes, which saves substantial silicon area.

Next, the XD_(i)I_(O) ₄₀ multiplier is briefly described, keeping in mind that the embodiment of XD_(i)I_(O) ₄₀ multiplier is similar to the embodiment of the XD_(i)I_(O) multiplier of FIG. 33 which utilized the meshed digital-to-analog multiplication (mD_(i)S_(O)) method (described in the prior section 32A and illustrated in FIG. 32A). The XD_(i)I_(O) ₄₀ multiplier is inputted with two digital input words Dx₄₀ word (comprising of 3-bits x1 ₄₀, x2 ₄₀, and x3 ₄₀) and Dy₄₀ word (comprising of 3-bits y1 ₄₀, y2 ₄₀, and y3 ₄₀).

As described earlier, the XD_(i)I_(O) ₄₀ multiplier is also inputted with a plurality of scaled reference current signals proportional to i_(r40), utilize NMOSFETs that are each scaled with W/L of 1X) comprising of 3 banks namely: The first scaled reference current bank I1 r ₄₀=1×i_(r40), I2 r ₄₀=1×i_(r40), and I4 r ₄₀=4×i_(r40), corresponding to I_(D) of N1 v ₄₀, N2 v ₄₀, and N4 v ₄₀, respectively. The second scaled reference current bank I2 r ₄₀=2×i_(r40), I4 r ₄₀=4×i_(r40), and I8 r ₄₀=8×i_(r40), corresponding to I_(D) of N2 v′ ₄₀, N4 v′ ₄₀, and N8 v′ ₄₀, respectively. The third scaled reference current bank I4 r ₄₀=4×i_(r40), I8 r ₄₀=8×i_(r40), and I16 r ₄₀=16×i_(r40), corresponding to I_(D) of N4 v″ ₄₀, N8 v″ ₄₀, and N16 v″ ₄₀, respectively.

A first x-channel sub-iDAC receives the first scaled reference bank (i.e., I1 r ₄₀, I2 r ₄₀, and I4 r ₄₀) at its current switch inputs that are the source-nodes of N1 x ₄₀, N1 x′ ₄₀, and N1 x″ ₄₀ whose gate-nodes are controlled by x1 ₄₀ bit. Accordingly, each of the I1 r ₄₀, I2 r ₄₀, and I4 r ₄₀ currents are respectively steered through, N1 x ₄₀, N1 x′ ₄₀, and N1 x″ ₄₀ which are gated by the x1 ₄₀ bit, to provide the scaled reference input currents to the first y-channel sub-iDAC (in accordance with Dx₄₀ word). Consequently, the said first y-channel sub-iDAC reference currents are steered through current switches N1 y ₄₀, N2 y ₄₀, and N3 y ₄₀ that are controlled by the first y-channel sub-iDAC's digital inputs y1 ₄₀, y2 ₄₀, and y3 ₄₀ bits, respectively. The drain-node currents of N1 y ₄₀, N2 y ₄₀, and N3 y ₄₀ are summed together and coupled to Ixy₄₀, which is the analog current output port of the XD_(i)I_(O) ₄₀ multiplier.

Similarly, a second x-channel sub-iDAC receives the second scaled reference bank (i.e., I2 r ₄₀, I4 r ₄₀, and I8 r ₄₀) at its current switch inputs that are the source-nodes of N2 x ₄₀, N2 x′ ₄₀, and N2 x″ ₄₀ whose gate-nodes are controlled by x2 ₄₀ bit. Accordingly, each of the I2 r ₄₀, I4 r ₄₀, and I8 r ₄₀ currents are respectively steered through, N2 x ₄₀, N2 x′ ₄₀, and N2 x″ ₄₀ which are gated by the x2 ₄₀ bit, to provide the scaled reference input currents to the second y-channel sub-iDAC (in accordance with Dx₄₀ word). Consequently, the said second y-channel sub-iDAC reference currents are steered through current switches N1 y′ ₄₀, N2 y′ ₄₀, and N3 y′ ₄₀ that are controlled by the second y-channel sub-iDAC's digital inputs y1 ₄₀, y2 ₄₀, and y3 ₄₀ bits, respectively. The drain-node currents of N1 y′ ₄₀, N2 y′ ₄₀, and N3 y′ ₄₀ are summed together and coupled to Ixy₄₀, which as noted earlier is the analog current output port of the XD_(i)I_(O) ₄₀ multiplier.

Lastly, a third x-channel sub-iDAC receives the third scaled reference bank (i.e., I4 r ₄₀, I8 r ₄₀, and I16 r ₄₀) at its current switch inputs that are the source-nodes of N3 x ₄₀, N3 x′ ₄₀, and N3 x″ ₄₀ whose gate-nodes are controlled by x3 ₄₀ bit. Accordingly, each of the I4 r ₄₀, I8 r ₄₀, and I16 r ₄₀ currents are respectively steered through, N3 x ₄₀, N3 x′ ₄₀, and N3 x″ ₄₀ which are gated by the x3 ₄₀ bit, to provide the scaled reference input currents to the third y-channel sub-iDAC (in accordance with Dx₄₀ word). Consequently, the said third y-channel sub-iDAC reference currents are steered through current switches N1 y″ ₄₀, N2 y″ ₄₀, and N3 y″ ₄₀ that are controlled by the third y-channel sub-iDAC's digital inputs y1 ₄₀, y2 ₄₀, and y3 ₄₀ bits, respectively. The drain-node currents of N1 y′″ ₄₀, N2 y″ ₄₀, and N3 y″ ₄₀ are summed together and coupled to Ixy₄₀, which as just noted is the analog current output port of the XD_(i)I_(O) ₄₀ multiplier.

In summary, the outputs of the first and second and third y-channel iDACs are summed at Ixy₄₀ to generate the analog multiplication representation, proportion to a unit scaled reference current signal, that is the X·Y digital multiplications. Note that for a binary (linear) multiplier, the scaled reference network (bank) is also binarily weighted, but the reference network can be scaled in other fashions (e.g., thermometer or non-linear) for multipliers with different input-to-output transfer functions.

In conclusion, some of the benefits of the XD_(i)I_(O) multiplier embodiment disclosed in FIG. 40 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the dynamic response of XD_(i)I_(O) multiplier is fast also in part because the scaled reference network banks are constant current sources whose current are steered by single MOSFET switches which are inherently fast.

Third, current mirror loop associated with conventional multiplying iDACs (where a first iDAC's output signal supplies the reference signal to a second iDAC, generally through a current mirror) is avoided which helps the speed.

Fourth, the minimum power supply can be lowered since it is chiefly limited by the drain-to-source voltage of current sources of the scaled reference network.

Fifth, for multiple channels of XD_(i)I_(O) multiplier required in AI & ML applications, the disclosed embodiment enjoys substantial benefits attributed to the multiple-channel data-converter method summarized in section 19. There is an area savings, in utilizing the multiple-channel data-converter method, in part because the requirement for individually weighted current sources (e.g., binary weighted or non-linearly weighted) is decoupled from requiring individually scaled current sources. Here, utilization of RBN₄₀ to generate a common reference voltage bus that is shared between plurality of sub-iDACs reduces the size of sub-iDACs current reference (cells in the) reference network of each sub-iDACs which lowers cost. Moreover, it lowers the combined associated parasitic and stray capacitance associated with current reference cells, which improves each of the sub-iDAC's dynamic response, lowers glitch, lowers digital injections into power supplies, and reduces the disclosed sub-iDAC's dynamic power consumption. The small size and improved performance on each sub-iDAC used in arranging each XD_(i)I_(O) multipliers are thus enjoyed by the plurality of plurality of such XD_(i)I_(O) multipliers.

Sixth, despite area savings attainable by the disclosed multiple-channel data-converter method in the sub-iDACs and the XD_(i)I_(O) multipliers, the accuracy of individual the sub-iDACs and the XD_(i)I_(O) multipliers are not substantially deterred. All else substantially equal, the matching of MOSFETs that form a data-converter's reference current network dominate the accuracy of a current-mode data-converter. The scaled MOSFETs in both the (central) reference bias network (RBN₄₀) match the 1X scaled MOSFETs in each of the sub-iDACs and the XD_(i)I_(O) multipliers because they are all arranged with the same (non-minimum W/L size) cell layout and same orientation.

Seventh, the disclosed sub-iDACs and the XD_(i)I_(O) multipliers substantially reduces the number of MOSFETs that for example form the sub-iDAC's binary weighted current source network, and as such the fewer MOSFETs can be placed closer to each other on a chip. Similarly oriented and physically closer MOEFETs, that form the current reference network of the sub-iDACs and the XD_(i)I_(O) multipliers, generally match better which in turn improves the accuracy of each of the sub-iDACs and the XD_(i)I_(O) multipliers and the matching between them in plurality of the sub-iDACs and the XD_(i)I_(O) multipliers in one chip.

Eight, in AI & ML applications the output current of plurality of the XD_(i)I_(O) multipliers could be coupled together and coupled to the input of iADCs. Generally and all else substantially equal, the larger the W/L size of a FET current source of the XD_(i)I_(O) multipliers, the larger the capacitance of the XD_(i)I_(O) multiplier's output port and the slower the of the XD_(i)I_(O) multipliers output node. Moreover, the XD_(i)I_(O) multiplier's output can capacitively load an iADC's input port which can also reduce the speed of the iADC right at its input port. As noted earlier, the multiple-channel data-converter method here enables decoupling the weight of a current source from the scaling of the sizes of FETs utilizing in forming the data-converter's reference current sources. By keeping each of the W/L sizes of the current source FETs the same at 1X and small for example (despite each of their binary weighted currents), the out node capacitances of the XD_(i)I_(O) multipliers that feeds the input of the iADC can be kept small which can help speeds up the dynamic response of the iADC.

Ninth, there are no passive devices in the disclosed sub-iDACs and the XD_(i)I_(O) multipliers, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Tenth, the disclosed sub-iDACs and the XD_(i)I_(O) multipliers utilize same type of MOSFET current sources and MOSFET switches which are symmetric and matched. Such arrangement facilitates device parameters to track each other over process-temperature-operation conditions variations. Accordingly, each of the data-coefficient, power supply coefficient, and AC power supply rejection performance can be enhanced and matched between the plurality of data-converters.

Eleventh, the disclosed embodiment enjoys the benefits of a second power supply desensitization (PSR) method, which helps eliminate a cascode FET from the scaled current reference sources which saves area and improves the dynamic response of the sub-iDAC and that of the meshed multiplier.

Twelfth, in an embodiment of the disclosed sub-iDACs and the XD_(i)I_(O) multipliers that utilizes the multiple-channel data-converter method wherein the central RBN is trimmed or calibrated for accuracy, the accuracy of each of the plurality of data-converters, sub-iDACs, and the XD_(i)I_(O) multipliers whose reference current network is biased from the same central RBN can be improved.

Thirteenth, in an embodiment of the sub-iDACs and the XD_(i)I_(O) multipliers that utilizes multiple-channel data-converter method wherein the central RBN is desensitized from power supply variations (e.g., by utilizing the second power supply desensitization method or the second PSR method disclosed in FIG. 40 and FIG. 41), the power supply insensitivity of each of the plurality of data-converters whose reference current network is biased from the same central RBN can be improved.

Fourteenth, the disclosed embodiment enjoys the benefits of meshed digital-to-analog multiplication (mD_(i)S_(O)) method summarized in sections 32A and 33.

Fifteenth, the benefits of the sub-iDACs and the XD_(i)I_(O) multipliers utilizing the multiple-channel data-converter method can be attained in other higher-order systems including but not limited to multiply-accumulate (MAC), and artificial-neural-network (ANN) that utilize the multiple-channel data-converter method.

Section 41—Description of FIG. 41

FIG. 41 is a simplified circuit schematic illustrating another embodiment of the digital-input to analog current output multiplier (XD_(i)I_(O)), which can be extended for applications requiring plurality of XD_(i)I_(O) multipliers by sharing a central reference bias network (RBN) that bias the current reference network of each of the XD_(i)I_(O) multipliers. The XD_(i)I_(O) ₄₁ multiplier utilizes a pair of non-linear iDACs, namely iNDAC_(P41) and iNDAC_(Q41), which receive a sum and a difference of two digital words (X and Y) wherein for example P′=X+Y and Q′=X−Y. The outputs of the iNDAC_(P41) and iNDAC_(Q41) are then subtracted via SUB₄₁ circuit which generates a scaled multiplication analog current of the multiplication on digital P′ word and digital Q′ words. Here, by subtracting the current outputs of iNDAC_(P41) and iNDAC_(Q41) a multiplication 4X. Y can be generated, wherein the first iNDAC_(P41) receives the sum of two digital words and generates (X+Y)² and the second iNDAC_(Q41) receives the difference of the same two digital words and generates (X−Y)².

The XD_(i)I_(O) ₄₁ multiplier utilizes the following circuit and methods disclosed earlier: (a) A RBN₄₁ circuit that utilizes the multiple-channel data-converter method disclosed in section 19, (b) a pair of iNDAC_(P41) and iNDAC_(Q41) that utilizes the second non-linear digital-to-analog converter or the NDAC method disclosed in section 36A. Each of iNDAC_(P41) and iNDAC_(Q41) are generally identical and similarly configured as the embodiment depicted in FIG. 39, except it does not use AND gate decoding; (c) The linear multiplication sections of iNDAC_(P41) and iNDAC_(Q41) are similar to the embodiments of FIG. 40 and FIG. 33, wherein the linear multiplication sections utilized the meshed digital-to-analog multiplication or mD_(i)S_(O) method summarized in sections 32A, and (d) the PSR₄₁ circuit is substantially similar to the second power desensitization circuit embodiment and method or PSR summarized in section 40.

The RBN₄₁ circuit generates the following reference bias voltages (bus) on diode connected NMOSFETs for mostly the linear sub-iDACs of iNDAC_(P41) and iNDAC_(Q41): V₁ via V_(GS) of N₁ whose I_(D) is set by P₁'s I_(D)=i_(r); V₂ via V_(GS) of N₂ whose I_(D) is set by P₂'s I_(D)=2i_(r); V₄ via V_(GS) of N₄ whose I_(D) is set by P₄'s I_(D)=4i_(r); V₈ via V_(GS) of N₈ whose I_(D) is set by P₈'s I_(D)=8r; V₁₆ via V_(GS) of N₁₆ whose I_(D) is set by P₁₆'s I_(D)=16i_(r); V₃₂ via V_(GS) of N₃₂ whose I_(D) is set by P₃₂'s I_(D)=32i_(r).

Additionally, the RBN₄₁ circuit generates the following reference bias voltages (bus) on diode connected NMOSFETs for mostly the non-linear iDACs of iNDAC_(P41) and iNDAC_(Q41) (e.g., iDACs whose input-output transfer functions approximates a square profile). V₂₄ via V_(GS) of N₂₄ whose I_(D) is set by P₂₄'s I_(D)=24i_(r); V₄₀ via V_(GS) of N₄₀ whose I_(D) is set by P₄₀'s I_(D)=40i_(r); V₅₆ via V_(GS) of N₅₆ whose I_(D) is set by P₅₆'s I_(D)=56i_(r); V₇₂ via V_(GS) of N₇₂ whose I_(D) is set by P₇₂'s I_(D)=72i_(r); V₈₈ via V_(GS) of N₈₈ whose I_(D) is set by P₈₈'s I_(D)=88i_(r); V₁₀₄ via V_(GS) of N₁₀₄ whose I_(D) is set by P₁₀₄'s I_(D)=104i_(r).

Similar to the circuit in section 40 and illustrated in FIG. 40, also in the PSR₄₁ circuit here, the gate port of Pd₄₁ (through the loop comprised of Nd₁, Nd₂, Pd₂, and Pd₃ and Ir₁) regulates the scaled current reference sources (e.g., P₁ through P₁₀₄) in order for the output currents of iNDAC_(P41) and iNDAC_(Q41) to be substantially desensitized to V_(DD) variations.

The SUB₄₁ is a simple embodiment of a current mirror that can perform the subtraction of the outputs current signals of the iNDAC_(P41) and the iNDAC_(Q41) and generate the analog multiplication current signal of 4I_(XY). Note that to arrange a MAC which requires the summation of a plurality of multiplication results, the output of plurality of pairs of non-linear multiplier's outputs (e.g., plurality of iNDAC_(P41) and iNDAC_(Q41)) can be coupled to the opposite side of the same current mirror circuit. As such, the current mirror can perform the function of subtraction (needed for pairs of non-linear DACs to generate the multiplication results) and the function of addition (needed in MAC) with one subtractor circuit and in one shot, which save area, helps speed, and improves accuracy.

Next, the different sections of iNDAC_(P41) circuit is described in accordance with the partitioning of the second non-linear digital-to-analog converter or the NDAC method disclosed in section 36A:

The first linear offset LSP iDAC section of iNDAC_(P41) is a linear binary weighted iDAC whose current reference network is comprised of (NMOSFETs scaled with W/L of 1X) N_(1P), N_(2P), and N_(3P) which operate at I_(D) of 1i_(r), 2i_(r), and 4i_(r), respectively. The current switches N_(1Pf), N_(2Pf)f, and N_(3Pf) are controlled by the Least-Significant-Bit (LSB) bank word (e.g., P′₁, P′₂, and P′₃ bits) which respectively steer the reference currents 1i_(r), 2i_(r), and 4i_(r) to the output port of the iNDAC_(P41).

The linear multiplication section of iNDAC_(P41) utilizes the meshed digital-to-analog multiplication or mD_(i)S_(O) method summarized in sections 32A, which is described next:

As described earlier, the linear multiplication section that utilizes the meshed multiplication in iNDAC_(P41) is also arranged with a plurality of scaled reference current signals proportional to ir₄₀ (that utilize NMOSFETs that are each scaled with W/L of 1X) comprising of 3 banks namely: The first scaled reference current bank is comprised of I_(D)=2i_(r) through N_(4P), I_(D)=3i_(r) through N_(5P), and I_(D)=8i_(r) through N_(6P). The second scaled reference current bank is comprised of I_(D)=4i_(r) through N_(7P), I_(D)=8i_(r) through N_(8P), and I_(D)=816 through N_(9P). The third scaled reference current bank is comprised of I_(D)=8i_(r) through N_(10P), I_(D)=16i_(r) through N_(11P), and I_(D)=32i_(r) through N_(12P).

A first MSP sub-iDAC utilized in the meshed multiplication section of iNDAC_(P41) receives the first scaled reference bank (i.e., 2i_(r), 4i_(r), and 8i_(r)) at its current switch inputs that are the source-nodes of N_(4p) and N_(4p′) and N_(4p″). These current switches are controlled by P′₄ bit. Accordingly, each of 2i_(r), 4i_(r), and 8i_(r) currents, which are gated by the P′₄ bit, are respectively steered through current switches N_(4p) and N_(4p′) and N_(4p″) to provide the scaled reference input currents to the first LSP sub-iDAC. Next, the said first LSP sub-iDAC reference currents are steered through current switches N_(1p) and N_(2p) and N_(3p) that are controlled by the first LSP sub-iDAC's digital inputs P′₁, P′₂, and P′₃ bits, respectively. The output of current switches N_(1p) and N_(2p) and N_(3p) are summed together and coupled to the output port of the iNDAC_(P41).

Similarly, a second MSP sub-iDAC utilized in the meshed multiplication section of iNDAC_(P41) receives the second scaled reference bank (i.e., 4i_(r), 8i_(r), and 16i_(r)) at its current switch inputs that are the source-nodes of N_(5p) and N_(5p′) and N_(5p″). These current switches are controlled by P′₅ bit. Accordingly, each of 4i_(r), 8i_(r), and 16i_(r) currents, which are gated by the P′₅ bit, are respectively steered through current switches N_(5p) and N_(5p′) and N_(5p″) to provide the scaled reference input currents to the first LSP sub-iDAC. Next, the said first LSP sub-iDAC reference currents are steered through current switches N_(1p′) and N_(2p′) and N_(3p′) that are controlled by the first LSP sub-iDAC's digital inputs P′₁, P′₂, and P′₃ bits, respectively. The output of current switches N_(1p′) and N_(2p′) and N_(3p′) are summed together and coupled to the output port of the iNDAC_(P41).

Furthermore, a third MSP sub-iDAC utilized in the meshed multiplication section of iNDAC_(P41) receives the second scaled reference bank (i.e., 8i_(r), 16i_(r), and 32i_(r)) at its current switch inputs that are the source-nodes of N_(6p) and N_(6p′) and N_(6p″). These current switches are controlled by P′₆ bit. Accordingly, each of 4i_(r), 8i_(r), and 16i_(r) currents, which are gated by the P′₆ bit, are respectively steered through current switches N_(6p) and N_(6p′) and N_(6p″) to provide the scaled reference input currents to the first LSP sub-iDAC. Next, the said first LSP sub-iDAC reference currents are steered through current switches N_(1p″) and N_(2p″) and N_(3p″) that are controlled by the first LSP sub-iDAC's digital inputs P′₁, P′₂, and P′₃ bits, respectively. The output of current switches N_(1p″) and N_(2p″) and N_(3p″) are summed together and coupled to the output port of the iNDAC_(P41).

The non-linear MSP iDAC section of the iNDAC_(P41) is arranged as a non-linear (e.g., to approximate a square transfer function) thermometer iDAC. Here, the non-linear thermometer reference current network is comprised of NMOSFETs that are scaled with W/L of 1X, namely N_(13P) through N_(19P). The gate-ports N_(13P) through N_(19P) are respectively coupled to the reference network voltage bus V₈, V₂₄, V₄₀, V₅₆, V₇₂, V₈₈, and V₁₀₄, which are supplied from RBN₄₁ circuit. The drain currents of N_(13P) through N_(19P) are scaled to 8i_(r), 24i_(r), 40i_(r), 56i_(r), 72i_(r), 88i_(r), and 104i_(r) wherein i_(r) is programmed by Ir₁. By inputting the proper polarity of the MSB bank word (xP′₆, xP′₅, and xP′₄) to a 3-bit input to 7-bit output digital encoder (ENC_(P)), a 7-bit digital word is generated. The 7-bit output word of ENC_(P) control the NMOSFET current switches comprising of N_(t1P), N_(t2P), N_(t3P), N_(t4P), N_(t5P), N_(t6P), and N_(t7P) whose inputs are couple to their respective non-linear current source segments (e.g., 8i_(r), 24i_(r), 40i_(r), 56i_(r), 72i_(r), 88i_(r), and 104i_(r)) of the respective non-linear thermometer reference current network. As such, the current switches control the steering of the non-linear current source segments onto the outputs of the said current switches which are coupled together at the output node of the iNDAC_(P41).

The iNDAC_(Q41) is arranged and operates the same as iNDAC_(P41).

As noted earlier, an analog multiplication current signal of 4X. Y can be generated by (setting P′=X+Y and Q′=X−Y and) inputting the proper polarity of P′ and Q′ into the digital input ports of iNDAC_(P41) and iNDAC_(Q41), and then subtracting the outputs of iNDAC_(P41) and iNDAC_(Q41) via SUB₄₁. Bear in mind that as such, the iNDAC_(P41) receives the sum of two digital words and generates (X+Y)² and the iNDAC_(Q41) receives the difference of the same two digital words and generates (X−Y)² and the (X+Y)²−(X−Y)²=4XY.

In conclusion, some of the benefits of the XD_(i)I_(O) multiplier embodiment disclosed in FIG. 41 are as follows:

First, the disclosed embodiment benefits from operating in current mode that has been discussed in this disclosure

Second, the dynamic response of XD_(i)I_(O) multiplier is fast also in part because the scaled reference network banks are constant current sources whose current are steered by single MOSFET switches which are inherently fast.

Third, current mirror loop associated with conventional multiplying iDACs (where a first iDAC's output signal supplies the reference signal to a second iDAC, generally through a current mirror) is avoided which reduces die size and helps improve dynamic response.

Fourth, the minimum power supply can be lowered since it is chiefly limited by the drain-to-source voltage of current sources of the scaled reference network.

Fifth, the disclosed embodiment of XD_(i)I_(O) ₄₁ multiplier enjoys the benefits of the RBN₄₁ circuit that utilizes the multiple-channel data-converter method disclosed in section 19.

Sixth, the disclosed embodiment of XD_(i)I_(O) ₄₁ multiplier enjoys the benefits of the pair of iNDAC_(P41) and iNDAC_(Q41) that utilizes the second non-linear digital-to-analog converter method disclosed in section 36A.

Seventh, the disclosed embodiment of XD_(i)I_(O) ₄₁ multiplier enjoys the benefits of iNDAC_(P41) and iNDAC_(Q41) which are similarly configured to the embodiment disclosed in section 39.

Eight, the disclosed embodiment of XD_(i)I_(O) ₄₁ multiplier enjoys the benefits of the linear multiplication sections of iNDAC_(P41) and iNDAC_(Q41) which are similar to the embodiments disclosed in sections 40 and 33, wherein the linear multiplication sections utilized the meshed digital-to-analog multiplication method summarized in sections 32A, and

Ninth, the disclosed embodiment of XD_(i)I_(O) ₄₁ multiplier enjoys the benefits of the PSR₄₁ circuit that is substantially similar to the second power desensitization circuit embodiment and method summarized in section 40.

An inherent benefit of the disclosed embodiment of XD_(i)I_(O) ₄₁ multiplier is that since both digital inputs to the XD_(i)I_(O) ₄₁ multiplier (e.g., x+y and x −y) are squared and subsequently the (x+y)² term and the (x−y)² term are subtracted from one another, the 4xy multiplication result can be bi-directional which is beneficial for multi-quadrant signal processing.

Section 42—Description of FIG. 42

FIG. 42 is a SPICE circuit simulations that illustrates the linearity error in % between an ideal output current (Io_(ideal)) of a XD_(i)I_(O) versus the simulated output current (Io_(simulation)) of a XD_(i)I_(O) that is arranged similar to that of FIG. 34 but with a 4-bit resolution.

Keeping in mind that 4-bit of resolution computes to about 6% of accuracy, FIG. 42 indicates DNL (differential non-linearity) and INL (integral non-linearity) of less than about ±3%. The X and Y digital input words span in the opposite direction, between zero and full scale, while stepping the digital words with one LSB increments each 1 micro-seconds (μs). The lower graph in FIG. 42 indicates a power consumption of less than about 80 nano-ampere.

Section 43—Description of FIG. 43

FIG. 43 is a SPICE circuit simulations that illustrates the linearity error in % between an ideal output current (Io_(ideal)) of a XD_(i)I_(O) versus the simulated output current (Io_(simulation)) of a XD_(i)I_(O) multiplier that is arranged similar to that of FIG. 40 but with a 6-bit resolution.

As noted, the XD_(i)I_(O) multiplier of FIG. 43 is inputted with an 6-bit (X-word digital input) by an 6-bit (Y-word digital input) wherein the X and Y digital input words are ramped in the same direction between zero-scale to full scale. Here, the linearity of XD_(i)I_(O) is illustrated for power supply V_(DD)=2V (in the lower waveform of FIG. 43) and V_(DD)=2V (in the upper waveform of FIG. 43).

Keeping in mind that 6-bit of resolution computes to about 1.6% of accuracy, FIG. 43 indicates DNL (differential non-linearity), INL (integral non-linearity), and GE (gain-error) of less than about ±1.6% for V_(DD) between 1V to 2V. By utilizing the multiplier power supply desensitization method combined with the multiple-channel iDAC method in a XD_(i)I_(O), FIG. 43 indicates that the XD_(i)I_(O) is substantially desensitized from power supply variations.

Section 44—Description of FIG. 44

FIG. 44 illustrates SPICE simulations of a circuit comprising of an ideal square iDAC's output current (I_(X) ²) plot versus the simulated output current (I_(O) ²) plot of a square iDAC that is arranged similar to that of FIG. 38 but with a 7-bit resolution.

Keeping in mind that 7-bit of resolution computes to about 0.8% of accuracy, the lower graph in FIG. 44 indicates a % error between I_(X) ² and I_(O) ² indicating less than about ±0.8% error in DNL (differential non-linearity) and INL (integral non-linearity). The X and Y digital input words span in the same direction, between full scale and zero. The upper graph in FIG. 44 is a plot of the square iDAC's I_(o) output current simulation versus that of an ideal square iDAC (offset by a few % for clarity of the illustration).

Section 45—Description of FIG. 45

FIG. 45 illustrates SPICE simulations of a circuit comprising of an ideal square iDAC's output current (I_(X) ²) plot versus the simulated output current (IA) plot of a square iDAC that is arranged similar to that of FIG. 39 but with a 7-bit resolution.

Keeping in mind that 7-bit of resolution computes to about 0.8% of accuracy, the upper graph in FIG. 45 indicates a % error between I_(X) ² and I_(O) ² indicating less than about ±0.8% error in DNL (differential non-linearity) and INL (integral non-linearity). The X and Y digital input words span in the same direction, between zero and full scale. The lower graph in FIG. 44 is a plot of the square iDAC's I_(o) output current simulation versus that of an ideal square iDAC (offset by a few % for clarity of the illustration).

Section 46—Description of FIG. 46

FIG. 46 illustrates SPICE simulations of a circuit comprising of an ideal XD_(i)I_(O) 's output current (Io_(ideal)) plot versus the simulated output current (Io_(simulation)) plot of a XD_(i)I_(O) multiplier that is arranged similar to that of FIG. 41 but with a 7-bit resolution. As a reminder the XD_(i)I_(O) multiplier utilizes iDACs whose transfer functions follows an approximate square transfer function. Also, note that Io_(ideal)=((x+y)²−(x−y)²)=4xy

As noted, the XD_(i)I_(O) multiplier of FIG. 41 is inputted with a 7-bit (X+Y) and a 7-bit (X−Y) digital words, wherein X and Y digital words are ramped in the same direction between zero-scale to full scale.

Keeping in mind that 7-bit of resolution computes to about 0.8% of accuracy, FIG. 46 indicates DNL (differential non-linearity) and INL (integral non-linearity) of less than about +0.8%.

Section 47—Description of FIG. 47

FIG. 47 is a simplified block diagram illustrating an approximate non-linear digital data-conversion (aNDC) method. In FIG. 47, the aNDC method is utilized in a digital-input to digital-output approximate square logic function (i.e., the approximate non-linear data-conversion is an approximate square data-conversion). One skilled in the art would notice that the aNDC method is a digital equivalent embodiment of the (mixed-mode) non-linear digital-to-analog converter (NDAC) method that is described in sections 36, 36A, and 37 of this disclosure. This section describes FIG. 47 in order to illustrate the equivalence between aNDC and NDAC methods.

As noted, for clarity and not as a limitation, the aNDC method is utilized in a aSQRL₄₇ digital block of FIG. 47 as one having a digital-input to digital-output square transfer function.

The aSQRL₄₇ digital input ports receive a digital Z word, wherein the digital Z word is partitioned to a digital MSB bank word (Z_(MSP)) and a digital LSB bank word (Z_(LSP)).

The aSQRL₄₇ digital block outputs a digital word ˜Z² that is an approximate representation of square of its input word Z.

The aSQRL₄₇ digital block is comprised of the following sub-blocks: a MSP square logic (mSQRL₄₇), a digital multiplier (MULTL₄₇) and first digital scale (SRL1 ₄₇), an offset (OFSL₄₇) and second digital scale (SRL2 ₄₇), and a digital summation (SUML₄₇).

The sub-block mSQRL₄₇ receives the Z_(MSP) word at its digital input (I-port), and it generates a digital square word Z_(MSP) ² at its digital output (O-port).

The sub-block MULTL₄₇ receives the Z_(MSP) word at its MPS digital input (I_(M)-port), and receives the Z_(LSP) word at its LPS digital input (I_(L)-port), and generates a digital word Z_(MSP)×Z_(LSP) at its digital output (O-port).

The sub-block SRL1 ₄₇, whose scale factor (s_(L)) is programmed by the digital word S_(DIV), receives the Z_(MSP)×Z_(LSP) digital word at its digital input I-port and generates a scaled digital output word s_(L) (Z_(MSP)×Z_(LSP)) at its digital O-port. Bear in mind that for a square transfer function wherein s_(L) can be an even binary number, the scaling function of the sub-block SRL1 ₄₇ can be simply programmed by shifting the Z_(MSP)×Z_(LSP) digital word to the left or right of a digital shift register a proper number of times.

The sub-block OFSL₄₇ receives the Z_(LSP) word at its digital input (I-port), and generates an offset digital word Z′_(LSP) at its digital output (O-port).

The sub-block SRL2 ₄₇, whose scale factor (s_(O)) can be programmed by the digital word S_(DIV), receives the Z′_(LSP) digital word at its digital input I-port and generates a scaled digital output word s_(o)(Z′_(LSP)) at its digital O-port. Again, bear in mind that for a square transfer function wherein s₀ can be an even binary number, the digital offset and digital scaling function of the sub-blocks OFSL₄₇ and SRL2 ₄₇ can be simply programmed by shifting the Z_(LSP) digital word to the left or right of a digital shift register a proper number of times.

The digital sub-block SUML₄₇ generates an approximate (non-linear) square digital word ˜Z² at its output O-port by summing the respective digital words inputted to its input ports I₁-port, I₂-port, and I₃-port. The input ports of SUML₄₇ receive the digital outputs from the O-ports of mSQRL₄₇, SRL1 ₄₇, and SRL2 ₄₇ which are the digital words representing Z_(MSP) ² s_(L)(Z_(MSP)×Z_(LSP)), and s_(o)(Z′_(LSP)), respectively.

Notice that that in utilizing the aNDC method in the aSQRL block of FIG. 47 (similar to the mixed-mode non-linear digital-to-analog converter NDAC method disclosed in sections 36, 36A, and 37) the digital outputs of SRL1 ₄₇ and SRL2 ₄₇ are combined together to generate a digital output that serves as a straight line segment approximation to fill the gaps in-between MSP segments of the digital non-linear (square) output of the mSQRL₄₇.

By utilizing the aNDC method, a digital approximate non-linear square output signal (˜Z²) can be generated as a function of the digital input word Z.

Keep in mind that the transfer function of a non-linear mSQRL₄₇ can be arranged to follow a square transfer function or other non-linear profiles including but not limited to logarithmic, wherein linear offset digital signals can be combined with a linear digital multiplier output signals to generate a digital signal that serves as a linear straight-line approximation to fill the gaps in-between the non-linear mSQRL₄₇ digital output segment.

Notice that section 53 (FIG. 53) illustrates a typical SPICE simulation of an embodiment of a aSQRL₄₇ (having a square transfer function) wherein Z is 6-bit digital word comprising of Z_(MSB) is a 3-bit digital word, and Z_(LSB) is a 3-bit digital word. Here, an embodiment of mSQRL₄₇ can be implemented with a 3-input to 6-output standard digital square logic circuit that can be arranged with as few as 12 logic gates. An embodiment of MULTL₄₇ can be arranged with a standard 3×3 input to 6-bit output digital multiplier. An embodiment of digital shift registers SRL1 ₄₇ and SRL2 ₄₇ (which can provide attenuation by shifting the bits to the right) as well as an embodiment of adders SUML₄₇ can be arranged with standard logic gates and are small. The combination of digital logic gates used in such embodiment of aSQRL₄₇ is significantly smaller and lower power compared to a standard 6×6 input to 12-bit output digital multiplier. Here, meaningfully smaller die area and lower dynamic power consumption savings can be realized, in exchange for computation accuracy that is approximate.

Some of the benefits of utilizing the aNDC method in the non-linear aSQRL₄₇ block having a square transfer function is as follows:

First, the aSQRL₄₇ can be significantly smaller and lower cost with lower dynamic power consumption, as compared to a conventional means of generating a digital Z² that for example require the multiplication of Z×Z whose die cost, die size, and dynamic power consumption increases significantly with higher width of the Z-bit word.

Second, the aSQRL₄₇ enables making a fast and low-cost digital-input to digital-output multiplier using the quarter square procedure. Here, by subtracting the digital outputs of (one time multiplexed or two) aSQRL₄₇ to generate a scaled multiplication of two digital words X and Y, whose summation (X+Y) and subtraction (X−Y) is inputted into aSQRL₄₇. By inputting digital summation (X+Y) and digital subtraction (X−Y) onto a aSQRL₄₇ and subtracting the approximate digital outputs ˜(X+Y)² and ˜(X−Y)² from one another, an approximate scaled multiplication digital signal ˜4X·Y can be generated.

Third, the aSQRL₄₇ enables making a digital input to multi-quadrant digital output multiplier via using the quarter square procedure, by for example squaring the digital absolute values of |X+Y| and |X−Y|.

Fourth, because aSQRL₄₇ is all digital, it can be time multiplexed at a high-speed to generate plurality of multiplication digital words. Accordingly, such plurality of multiplication digital words can be inputted onto a plurality of respective Digital-to-Analog converters (DAC)s. By summing the analog outputs of such plurality of DACs to perform the function of summation, a mixed-mode multiply-accumulate (MAC) signal can be generated. Such an arrangement can be more area and power efficient as compared to larger area and dynamic power consumption associated with an all-digital MAC that utilizes an alternative plurality of digital registers and adders. For example, the summation operations in such mixed-mode MAC function can by performed by inputting the joined (summed) output currents of plurality of iDACs into an analog input port a current mode Analog to digital converter (iADC).

Section 48—Description of FIG. 48

FIG. 48 is a simplified block diagram illustrating an embodiment of a digital input to analog output multiplier (XD_(i)I_(O)) that utilizes a time multiplexed digital squarer logic block.

Bear in mind that the analog output XD_(i)I_(O) of FIG. 48 is a current signal for utilizing a iDAC₄₈ but it can be a voltage output by utilizing a voltage output DAC.

The XD_(i)I_(O) of FIG. 48 is a multiplier that utilizes the quarter square procedure.

In FIG. 48, by subtracting the time multiplexed digital outputs of a single SQRL₄₈, a scaled multiplication of two digital words X and Y is generated.

The digital absolute value of the summation |X+Y| and digital absolute value of the subtraction |X−Y| are time multiplex inputted into SQRL₄₈. The time multiplexed digital outputs |X+Y|² and |X−Y|² of SQRL₄₈ are subtracted from one another to generate a scaled multiplication digital signal 4XY. This is how the digital-input to digital-output multiplication is performed by the MULTL₄₈ section that is shown inside the dotted line of FIG. 48.

The digital output of MULTL₄₈ which is the digital 4XY word is then fed onto an iDAC to generate an equivalent analog 4X′Y′ signal (proportional to the iDAC₄₈'s reference signal).

In the embodiment of FIG. 48, the XD_(i)I_(O) receives X and Y digital input words at digital addition and a digital subtraction logic blocks (ADDL₄₈ and SUBL₄₈) to generate a digital summation (X+Y) word and a digital subtraction (X−Y) word. The X+Y and X−Y digital words denoted as Z_(i), for being time multiplex and selected by a control word (SC), are inputted to digital absolute value logic block (ABSL₄₈) to generate an absolute value digital word |Z_(i)| that is time multiplexed. Then, |Z_(i)| time multiplexed word is squared via the square logic block (SQRL₄₈) that generates a digital time multiplexed |Z²| word. The digital register logic blocks (REGLs₄₈ and REGLd₄₈), which are time multiplexed and selected by the control word (Sc), provide the digital outputs of that are squared absolute value digital words |X+Y|² and |X−Y|², respectively. The subtraction logic block subtracts the digital words |X+Y|² and |X−Y|² to generate a scaled multiplication word 4XY digital word. As noted earlier, up to this point a digital input o digital output multiplication is performed by the MULTL₄₈ section.

The MULTL₄₈'s 4XY digital output word is then inputted onto an iDAC₄₈ to generate a scaled multiplication analog current signal 4X′Y′ that is proportional a reference current signal (Ir₄₈) and responsive to the 4XY digital word.

The SQRL₄₈ can utilize an approximate square logic block, similar to aSQRL₄₇ that is described in section 48 and illustrated in FIG. 48, that saves on die area and reduces power consumption. In an artificial neural network (ANN) that is arranged with plurality of iDACs (to perform an area efficient summation function for the MAC), the ANN's computation accuracy can be dominated by the imprecision of (untrimmed and uncalibrated) iDACs. As such, utilizing a digital multiplier whose approximate accuracy is at par with the accuracy of untrimmed and uncalibrated iDACs, can be provide a cost efficient smaller size and lower power consuming ANN and one that offers an optimal cost-performance balance (e.g., by utilizing an approximate square logic block such as that of aSQRL₄₇, whose accuracy is similar to that of a untrimmed and uncalibrated iDACs, with having smaller size and lower dynamic power consumption)

Some of the benefits of XD_(i)I_(O) that utilizes a SQRL₄₈ in FIG. 48 (wherein SQRL₄₈ is arranged similar to aSQRL₄₇ of FIG. 47) are as follows:

First, the multiplier XD_(i)I_(O) that utilizes an SQRL₄₈ can be significantly smaller with lower cost with lower dynamic power consumption, for medium digital word width and medium accuracy ANNs (e.g., 5 to 10 bits).

Second, the multiplier XD_(i)I_(O) that utilizes an SQRL₄₈ enables making a digital input to multi-quadrant digital output multiplier via using the quarter square procedure.

Third, because the multiplier XD_(i)I_(O) that utilizes an SQRL₄₈ is all digital (excluding the iDAC₄₈), it can be time multiplexed at higher speeds to generate plurality of time multiplexed multiplication digital words. Accordingly, such plurality of multiplication digital words can be inputted onto a plurality of respective iDACs. As noted earlier, by subsequently summing the analog current outputs of such plurality of iDAC, a multiply-accumulate (MAC) analog signal can be generated to perform the function of summation is analog. Analog summation (via simply joining plurality of wires) in a mixed-mode MAC can be more area and power efficient compared to the larger area and higher dynamic power consumption associated with an alternative all-digital MAC that utilizes plurality of digital registers and adders.

Section 49—Description of FIG. 49

FIG. 49 is a simplified block diagram illustrating an embodiment of a digital input to analog output multiplier (XD_(i)I_(O)) that utilizes a pair of digital squarer logic blocks.

The analog output XD_(i)I_(O) of FIG. 49 is also current for utilizing a iDAC₄₉ but it too can be a voltage output by utilizing a voltage output DAC.

The XD_(i)I_(O) of FIG. 49 is also a multiplier that utilizes the quarter square procedure, wherein the squarer logic blocks (SQRLs₄₉ and SQRLd₄₉) can be arranged similar to aSQRL₄₇ that is described in section 47.

FIG. 49 illustrates a XD_(i)I_(O) embodiment that can be more suitable for applications that cannot afford the delays attributed to time multiplexing the same digital blocks and that require asynchronous operations.

Accordingly, a pair of digital absolute value digital blocks (ABSLs₄₉ and ABSLd₄₉) receive the sum (X+Y) and subtraction (X−Y) of the digital input words X and Y. The pair of output words of ABSLs₄₉ and ABSLd₄₉ which are the absolute value of sum and subtraction of digital input words (i.e., |X+Y| and |X−Y|) are then inputted to a pair of square logic blocks that generate the square of the sum and square of the difference of the digital input words (i.e., |X+Y|² and |X−Y|²), which are then subtracted from one another to generate the scaled multiplication digital word 4XY. This is how the digital input to digital output multiplication is performed by the MULTL₄₉ section that is shown inside the dotted line of FIG. 49.

The digital output of MULTL₄₉ which is the digital 4XY word is then fed onto a DAC to generate an equivalent analog 4X′Y′ signal (proportional to the iDAC₄₉'s reference signal) and responsive to the 4XY digital word.

The benefits of XD_(i)I_(O) that utilizes a pair of SQRLs₄₉ and SQRLd₄₉ in FIG. 49 are similar to the benefit of aSQRL₄₇ of FIG. 47 that is described in section 47.

Section 50—Description of FIG. 50

FIG. 50 is a simplified block diagram illustrating another embodiment of a digital input to analog output multiplier (XD_(i)I_(O)) that utilizes a pair of digital squarer logic blocks.

The analog output XD_(i)I_(O) of FIG. 50 is also a current signal for utilizing a pair of iDACs (iDACs₅₀ and iDACd₅₀) but it too can be a voltage output by utilizing a voltage output DAC.

The XD_(i)I_(O) of FIG. 50 is also a multiplier that utilizes the quarter square procedure, wherein the squarer logic blocks (SQRLs₅₀ and SQRLd₅₀) can be arranged similar to aSQRL₄₇ that is described in section 47.

FIG. 50 illustrates a XD_(i)I_(O) embodiment that can also be more suitable for applications that cannot afford the delays attributed to time multiplexing the same digital blocks and that require asynchronous operations.

Accordingly, a pair of digital absolute value digital blocks (ABSLs₅₀ and ABSLd₅₀) receive the sum (X+Y) and subtraction (X−Y) of the digital input words X and Y. The pair of output words of ABSLs₅₀ and ABSLd₅₀ which are the absolute value of sum and subtraction of digital input words (i.e., X+Y and |X−Y) are then inputted to a pair of square logic blocks that generate the square of the sum and the difference of the digital input words (i.e., |X+Y|² and |X−Y|²). The |X+Y|² and |X−Y|² digital words are then fed onto the digital input ports of the pair of iDACs (iDACs₅₀ and iDACd₅₀) whose analog current outputs are subsequently subtracted from one another to generate the scaled multiplication analog current signal 4X′Y′ that is proportional a reference current signals Irs₄₉ and Irs₄₉ and responsive to the 4XY digital word.

The benefits of XD_(i)I_(O) that utilizes a pair of SQRLs₅₀ and SQRLd₅₀ in FIG. 50 are similar to the benefit of aSQRL₄₇ of FIG. 47 that is described in section 47.

Section 51—Description of FIG. 51

FIG. 51 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode multiply-accumulate (MACiDAC) circuit whose multiplication functions in accordance with the quarter square procedure, wherein the squarer logic block SQRL₅₁ is time multiplexed to perform a plurality of multiplications, and wherein SQRL₅₁ can be arranged similar to aSQRL₄₇ that is described in section 47.

The embodiment of MACiDAC of FIG. 51 utilizes a current mode multiply accumulate method, wherein at least one digital multiplier generates a pair of plurality of multiplication digital words to a pair of plurality of respective iDACs, whose current outputs are combined together to generate an analog current multiply-accumulate signal.

The disclosed embodiment of the MACiDAC of FIG. 51 is another digital-input to digital-output (D_(i)D_(o)) mixed-mode MAC plus bias that utilizes plurality of iDACs and a current-mode analog-to-digital converters (iADC).

A sequence of sums and a subtraction of X and Y digital input words (X+Y and X−Y) are time multiplexed through a MUXL₅₁ digital logic block that is controlled and clocked by a SC digital word. The sequence of time multiplexed X+Y and X−Y words, represented in FIG. 51 as digital Z words at the output port of MUXL₅₁ are fed onto an absolute value logic block that generates a timed sequence of |Z| digital words. The timed sequence of |Z| digital words are subsequently fed onto a square logic block SQRL₅₁ that generates a timed sequence of Z² digital words.

The respective timed sequence of Z² that represent a timed sequence of pairs of |X+Y² and |X−Y|² digital words are selected and clocked (via the Sc digital word) and inputted onto n pairs of respective digital registers (i.e., REGL1 ₅₁ & REGL1′₅₁ pair through REGLn₅₁ & REGLn′₅₁ pair), wherein n represents the number of pairs of X and Y digital input words allocated per MAC.

The saved pairs of |X+Y|² and |X−Y|² digital words are then inputted from n pairs of the respective digital registers onto n pairs of respective iDACs (i.e., iDAC1 ₅₁ & iDAC1′₅₁ pair through iDACn₅₁ & iDACn′₅₁).

The current outputs of n respective iDAC1 ₅₁ through iDACn₅₁ are summed (coupled) together, whose sum is deducted from a respective paired counterpart sum (coupled) of current outputs of n respective iDAC1′₅₁ through iDACn′₅₁.

Notice that the subtraction of pairs of iDAC currents is performed utilizing only one analog current subtraction circuit iSUB₅₁ (which can be a current mirror with pairs of iDAC output currents coupled respectively to the current mirror's input and output ports) that saves on area and improves accuracy.

Also, note bear in mind that here the value of iDAC's current references (Ir1 ₅₁& Ir1′₅₁ through Irn₅₁& Irn′₅₁) are equal to one another and equal to Ir.

An offset iDACb₅₁'s output current (responsive to the offset digital word B) is coupled with the output current of the iSUB₅₁, where their combination generates a net MAC current I_(MAC) that is proportional to Ir and responsive to the sum of the digital words X₁Y₁+X₂Y₂+ . . . +X_(n)Y_(n)+B.

The analog MAC current I_(MAC) is then digitized by iADC₅₁ whose digital output word represents X₁Y₁+X₂Y₂+ . . . +X_(n)Y_(n)+B that is proportional to the reference current signal (mIr₅₁) of the iADC₅₁ and is responsive to its analog input current I_(MAC) signal.

Some of the benefits of the disclosed embodiment of MACiDAC FIG. 51 are as follows:

First, alternative digital adders and subtractors can occupy a substantially larger die area compared to the analog summation and subtraction performed by a single SUB₅₁ in analog mode that is simply the joining of plurality of wires which saves on die area.

Second, the SQRL₅₁ of FIG. 51 can be arranged similar to aSQRL₄₇ that is described in section 47, which saves of area and dynamic power consumption.

Third, since the iDACs are current mode and fast, the dynamic response of MACiDAC would be dominated primarily by the iADC₅₁ and secondarily by iSUB₅₁. Accordingly, the all-digital SQRL₅₁ (which is able to operates fast inherently) can be time multiplexed to generate the digital data fast enough to be inputted onto a plurality of pairs of iDACs (whose output currents are processed and fed) onto a slower iADC. Such arrangement strikes an optimal balance (for the MACiDAC of FIG. 51) between speed and smaller area and lower power consumption.

Fourth, as noted earlier, operating in current mode has the following benefits for the disclosed D_(i)D_(o) MACiDAC: (a) current mode is inherently fast, (b) voltage swings in current-mode signal processing are small, which enables operating with lower power supply voltage and operating at low supply voltages facilitates reducing power consumption, (c) current-mode signal processing such as addition or subtraction functions take small area and can be performed fast.

Fifth, there are no passive devices in the disclosed D_(i)D_(o) MACiDAC, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Sixth, the precision of the disclosed D_(i)D_(o) MACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Seventh, the disclosed D_(i)D_(o) MACiDAC can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or ±0.4%)) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)D_(o) MACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Eighth, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 52—Description of FIG. 52

FIG. 52 is a simplified functional block diagram illustrating an embodiment of a mixed-signal current-mode multiply-accumulate (MACiDAC) circuit that utilizes a digital-input to digital-output multiplier (MULTL₅₂) whose time multiplexed digital outputs are stored and clocked onto a plurality of iDACs, wherein the output current of the plurality of iDACs are coupled together to generate the MAC's analog output current signal (I_(MAC)).

The embodiment of MACiDAC of FIG. 52 also utilizes the current mode multiply accumulate method, wherein at least one digital multiplier generates a plurality of multiplication digital words to a plurality of respective iDACs, whose current outputs are coupled together to generate an analog current multiply-accumulate signal.

Bear in mind that the MULTL₅₂ of FIG. 52 can utilize the MULTL₄₈ section (in the dotted line segment) of FIG. 48.

Also, keep in mind that the MULTL₅₂ section of FIG. 52 can be arranged by utilizing squarer logic block aSQRL₄₇ that is described in section 47.

The disclosed embodiment of the MACiDAC of FIG. 52 is another digital-input to digital-output (D_(i)D_(o)) mixed-mode MAC plus bias that utilizes plurality of iDACs and a current-mode analog-to-digital converters (iADC).

A sequence of n pairs of X₁ & Y₁ through X_(n) & Y_(n) are inputted onto a time multiplexed digital-input to digital-output multiplier MULTL₅₂. The timed sequence of MULTL₅₂ digital out words (X₁×Y₁ through X_(n)×Y_(n)) are respectively selected and clocked (via the SC digital word) and inputted onto n respective digital registers (i.e., REGL1 ₅₂ through REGLn₅₂), wherein n represents the number of pairs of X and Y digital input words allocated per MAC.

The digital words X₁×Y₁ through X_(n)×Y_(n) are then inputted onto n respective iDACs (i.e., iDAC1 ₅₂ through iDACn₅₂) from the digital output ports of the n respective REGL1 ₅₂ through REGLn₅₂.

The current outputs of n respective iDAC1 ₅₂ through iDACn₅₂ are (summed) coupled together to generate an analog current signal (I′_(MAC)), proportional to a reference current signal (Ir), that is responsive a digital word X₁Y₁+X₂Y₂+ . . . +X_(n)Y_(n).

Also note that the value of iDAC's current references (Ir1 ₅₂ through Irn₅₂ for the embodiment of FIG. 52) are equal to one another and equal to Ir, here in the embodiment of FIG. 52.

An offset iDACb₅₂'s output current (proportional to Ir and responsive to the offset digital word B) is coupled to I′_(MAC) to generate an I_(MAC) that is proportional to Ir and responsive to the sum of the digital words X₁Y₁+X₂Y₂+ . . . +X_(n)Y_(n)+B.

The analog MAC current I_(MAC) is then digitized by iADC₅₂ whose digital output word represents X₁Y₁+X₂Y₂+ . . . +X_(n)Y_(n)+B that is proportional to the reference current signal (mIr₅₁) of the iADC₅₁ and is responsive to its analog input current I_(MAC) signal.

Some of the benefits of the disclosed embodiment of MACiDAC of FIG. 52, similar to the benefits of the MACiDAC of FIG. 53, are as follows:

First, alternative digital adders and subtractors can occupy a substantially larger die area compared to the analog summation that is simply the joining of plurality of (iDAC output current) wires which saves on die area.

Second, the MULT₅₂ of FIG. 52 can utilize the quarter square procedure and be arranged similar to aSQRL₄₇ that is described in section 47, which saves of area and dynamic power consumption.

Third, since the iDACs are current mode and fast, the dynamic response of MACiDAC would be dominated primarily by the iADC₅₂. Accordingly, the all-digital MULTL₅₂ (which is able to operates fast inherently) can be time multiplexed to generate the digital data fast enough to be inputted onto a plurality of pairs of iDACs whose output are simply coupled together and coupled to an analog current input port of a slower iADC. Such arrangement strikes an optimal balance (for the MACiDAC of FIG. 52) between speed and smaller area and lower power consumption.

Fourth, as noted earlier, operating in current mode has the following benefits for the disclosed D_(i)D_(o) MACiDAC: (a) current mode is inherently fast, (b) voltage swings in current-mode signal processing are small, which enables operating with lower power supply voltage and operating at low supply voltages facilitates reducing power consumption, (c) current-mode signal processing such as addition or subtraction functions take small area and can be performed fast.

Fifth, there are no passive devices in the disclosed D_(i)D_(o) MACiDAC, and as such there is no need for resistors or capacitors, which reduces manufacturing size and cost.

Sixth, the precision of the disclosed D_(i)D_(o) MACiDAC can be improved by improving the accuracy of iDACs (for example) by segmenting the iDAC's reference current transfer-function (along with digital binary-to-thermometer logic decoding of iDAC's digital input code).

Seventh, the disclosed D_(i)D_(o) MACiDAC can utilize lower resolution iDACs (e.g., 3-bits or 5-bits) to perform the multiplication function, which occupy smaller areas, but can still deliver higher accuracy (e.g., 8-bits of accuracy or ±0.4%) which is beneficial. For example, higher than 3 of 5 bits of accuracy for iDACs is attainable in standard CMOS fabrication factories due to (8-bits of accuracy or ±0.4%)) matching that is achievable between the iDAC's binary weighted current sources or segmented current sources. As such, the disclosed D_(i)D_(o) MACiDAC can utilize low resolution iDACs that occupy small areas but still achieve higher accuracy multiply-accumulate performance at lower cost.

Eighth, utilizing plurality of iDACs, whose outputs are summed, would attenuate the statistical contribution of the cumulative iDAC's random errors (such as random noise, offset, mismatches, linearity, gain, drift, etc.) at the summing node where the iDAC's current outputs are coupled. The statistical contribution of such cumulative iDAC's random errors, at the summing node, is the square root of the sum of the squares of such random error terms.

Section 53—Description of FIG. 53

FIG. 53 illustrates SPICE simulations of a circuit equivalent to the MULTL₄₉ section of FIG. 49, wherein the SQRLs₄₉ and SQRLd₄₉ digital blocks utilize the approximate (non-linear) square logic of aSQRL₄₇ disclosed in FIG. 47.

For the purpose of this simulations, the aSQRL₄₇ (having a square transfer function) is inputted with a 6-bit digital word Z that is comprising of Z_(MSB) that is a 3-bit digital word, and Z_(LSB) that is a 3-bit digital word. The embodiment of mSQRL₄₇ section (in aSQRL₄₇) is arranged with a 3-input to 6-output standard digital square logic circuit less than 12 logic gates. Other blocks used in this simulation are ideal macro-models.

As noted, the digital inputs are 6-bit (X+Y) and a 6-bit (X−Y) digital words, wherein X and Y digital words are ramped in the opposite direction between zero-scale to full scale.

For clarity of waveform illustration to fit in the FIG. 53 graph, analog equivalent waveforms of digital input and digital output signals are presented in FIG. 53.

The lower waveforms of FIG. 53 contain plots of the X and Y and X·Y signals, including the ideal versus the simulated X·Y signals.

The upper waveform of FIG. 53 is the X·Y ideal minus the X·Y simulations to demonstrate the DNL (differential non-linearity) and INL (integral non-linearity) that is chiefly attributed to the approximate squaring function of aSQRL₄₇.

Keeping in mind that 6-bit of resolution computes to about 1.6% of accuracy, FIG. 53 indicates DNL and INL in the range of ±1.6%.

Section 54—Description of FIG. 54

FIG. 54 illustrates a typical logic diagram of a 2-bit digital-input to 4-bit digital-output squarer (block SQR2t4₅₄). The digital-input word is A (comprising of A₀ and A₁ bits, and their opposites xA₀ and xA₁). The digital-output word is Q (comprising of Q₀ to Q₃).

Section 55—Description of FIG. 55

FIG. 55 illustrates a typical logic diagram of a 3-bit digital-input to 6-bit digital-output squarer (block SQR3t6₅₅). The digital-input word is A (comprising of A₀ to A₂ bits, and their opposites xA₀ to xA₂). The digital-output word is Q (comprising of Q₀ to Q₅).

Section 56—Description of FIG. 56

FIG. 56 illustrates a typical logic diagram of a 2-bit by 2-bit digital-input to 4-bit digital-output multiplier (block MULT2x2 ₅₆). The first digital-input word is A (comprising of A₀ to A₁ bits), and the second digital-input word is B (comprising of B₀ to B₁ bits). The digital-output word is Q (comprising of Q₀ to Q₃).

Section 57—Description of FIG. 57

FIG. 57 illustrates a block diagram of a squarer (SQR₅₇) that utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678.

The input to SQR₅₇ squarer is a signal Z that is partitioned into a Most-Significant-Portion (MSP) signal (Z_(MSP)), and a Least-Significant-Portion (LSP) signal (Z_(LSP)). The output of SQR₅₇ squarer is a Z² signal that is the square of the original input signal Z.

The Z_(MSP) signal is squared through a top sub-squarer block (SQRT₅₇) whose output Z_(MSP) ² is scaled by a scale factor s_(T) through a top scaler block (ST₅₇) that generates a s_(T)×Z_(MSP) ².

Also, the Z_(LSP) signal is squared through a bottom sub-squarer block (SQRB₅₇) whose output Z_(LSP) ² is scaled by a scale factor S_(B) through a top scaler block (SB₅₇) that generates a s_(B)×Z_(MSP) ² signal.

Then, the Z_(LSP) and Z_(MSP) signals are cross-multiplied through a multiplier block (MULT₅₇) whose output Z_(LSP)×Z_(MSP) is scaled by a scale factor S_(B) through a middle scaler block (SM₅₇) that generates a s_(M)×Z_(LSP)×Z_(MSP) signal.

Lastly, the s_(T)×Z_(MSP) ² signal, the s_(B)×Z_(MSP) ² signal, and the s_(M)×Z_(LSP)×Z_(MSP) signal are combined (re-assembled) through a combination block (SUM₅₇) to generate a squared signal Z² that is the square of the original input signal Z.

In summary, the segmented squaring method partitions an input signal to sub-segment signal banks to be squared, cross-multiplied, scaled, and recombined to generate the square of the original input signal.

Partitioning (segmenting) a higher resolution input into its sub-segments signal banks (with smaller resolutions), and processing and re-assembling the sub-segmented signal banks with lower resolution circuits to generate a final squared output signal would have the following benefits:

First, the segmented squaring method would reduce the size of the squaring circuitry.

Second, the segmented squaring method would improve the dynamic performance of the squaring circuitry, and

Third, the segmented squaring method allows optimizing for cost-performance by processing parts of the squaring function in mixed-mode.

Section 58—Description of FIG. 58

FIG. 58 illustrates a block diagram of an embodiment of a squarer (SQR₅₈) which is a segmented digital-input to current analog-output squarer utilizing meshed multipliers. The SQR₅₈ utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678. The SQR₅s also utilizes the meshed digital-to-analog multiplication method (described and illustrated in sections 32-32A and FIGS. 32-32A, respectively).

The input to SQR₅₈ squarer is a digital word signal Z that is partitioned to a MSP digital signal (Z_(MSP)), and a LSP digital signal (Z_(LSP)). The output of SQR₅₈ squarer is an analog Z² signal that is an analog current signal square representation of the digital input word Z.

The respective top, bottom, and middle multipliers blocks mD_(i)I_(O)t₅₈, mD_(i)I_(O)b₅₈, and mD_(i)I_(O)m₅₈ can utilize the embodiments of digital-input to analog current-output multipliers (XD_(i)I_(O)) described in sections 33, 34, or 35 which that utilize the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in section 32 and 32A.

The same Z_(MPS) digital word is inputted to both I₁ and I₂ digital input ports of the top mD_(i)I_(O)t₅₈ which generates an analog current signal responsive to Z² _(MPS) and proportional to a scaled reference current signal I_(R)×st₅₈, wherein st₅₈ is a top-reference scale factor.

The same Z_(LPS) digital word is also inputted to both I₁ and I₂ digital input ports of the bottom mD_(i)I_(O)b₅₈, which generates an analog current signal responsive to Z² _(LPS) and proportional to a scaled reference current signal I_(R)×sb₅₈, wherein sb₅₈ is a top-reference scale factor.

The Z_(MPS) and Z_(LPS) digital words are inputted to I₁ and I₂ digital input ports of the middle mD_(i)I_(O)m₅₈, which generates an analog current signal responsive to the product of Z_(MPS) and Z_(LPS) and proportional to a scaled reference current signal I_(R)×sm₅₈, wherein sm₅₈ is a middle-reference scale factor.

It would be obvious to one skilled in the art that mD_(i)I_(O) t₅₈ and mD_(i)I_(O) b₅₈ circuitry can be simplified in lieu of both their inputs (I₁ and I₂) receiving the same digital word, Z_(MPS) and Z_(MPS) respectively.

Benefits described in sections 32-35 as well as section 57 are generally applicable to the circuit illustrated here in FIG. 58. Also, the circuit of FIG. 58 enjoys the benefits attributed to current mode signal processing that has been described throughout this disclosure.

Some of the additional benefits of the SQR₅₈ embodiment are:

First, the embodied arrangement is area efficient since the function of scale blocks ST₅₇, ST₅₇, and ST₅₇ of FIG. 57 is performed in the circuit illustrated in FIG. 58 by simply scaling the I_(R) current reference of mD_(i)I_(O)t₅₈, mD_(i)I_(O)m₅₈, and mD_(i)I_(O)b₅₈.

Second, the embodied arrangement is also area efficient since the function of summation block SUM₅₇ of FIG. 57 is performed in in the circuit illustrated in FIG. 58 by simply joining the output current wires mD_(i)I_(O)t₅₈, mD_(i)I_(O)m₅₈, and mD_(i)I_(O)b₅₈.

Section 59—Description of FIG. 59

FIG. 59 illustrates a block diagram of an embodiment of a squarer (SQR₅₉) which is a segmented digital-input to current analog-output squarer utilizing a pair of digital squarers, digital multiplier, and current output Digital-to-Analog-Converters (iDAC)s. The SQR₅₉ utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678. Depending on resolution requirements, the SQR₅₉ can utilize digital squares and digital multipliers of the type illustrated in FIG. 54-55, and FIG. 56.

The input to SQR₅₉ squarer is a digital word signal Z that is partitioned to a MSP digital word (Z_(MSP)), and a LSP digital word (Z_(LSP)). The output of SQR₅₉ squarer is an analog Z² signal that is an analog current signal square representation of the digital input word Z.

The top and bottom digital-input to digital-output squarer blocks (SQRt₅₉, SQRb₅₉) generate the digital Z² _(MPS) and Z² _(LPS) words, respectively, and can utilize logic blocks similar to the ones disclosed in FIG. 54-55 or their expanded versions, depending on the resolution required by the end-application. The middle digital-input to digital-output multiplier block MULTm₅₉ that generates a digital word that is the product of Z_(LPS) and Z_(LPS) digital words, which can utilize a logic block similar to the one illustrated in FIG. 56, or their expanded versions, depending on the resolution required by the end-application. The current mode Digital-to-Analog-Converters iDACt₅₉, iDACm₅₉, and iDACb₅₉ can utilizes floating iDAC, factorized iDAC, reference bias network (RBN) style iDACs illustrated in FIG. 19, or other standard iDACs.

The Z² _(MPS) digital word is inputted onto iDACt₅₉ which generates an analog current signal responsive to Z² _(MPS) and proportional to a scaled reference current signal I_(R)×st₅₉, wherein st₅₉ is a top-reference scale factor.

The Z² _(LPS) digital word is inputted onto iDACb₅₉ which generates an analog current signal responsive to Z² _(LPS) and proportional to a scaled reference current signal I_(R)×sb₅₉, wherein sb₅₉ is a bottom-reference scale factor.

The digital output word of MULTm₅₉, that is the product of Z_(MPS) and Z_(LPS) digital words, is inputted to the middle iDACm₅₉ which generates an analog current signal responsive to the product of Z_(MPS) and Z_(LPS) digital words and proportional to a scaled reference current signal I_(R)×sm₅₉, wherein sm₅₈ is a middle-reference scale factor.

Benefits described in section 57 are generally applicable to the circuit illustrated here in FIG. 59. Also, the circuit of FIG. 59 enjoys the benefits attributed to current mode signal processing that has been described throughout this disclosure.

Additional benefits of the SQR₆₀ embodiment is:

First, the embodied arrangement is area efficient since the function of scale blocks ST₅₇, ST₅₇, and ST₅₇ of FIG. 57 is performed in FIG. 59 by simply scaling the I_(R) current reference of iDACt₅₉, iDACm₅₉, and iDACb₅₉.

Second, the embodied arrangement is also area efficient since the function of summation block SUM₅₇ of FIG. 57 is performed in FIG. 59 by simply joining the output current wires iDACt₅₉, iDACm₅₉, and iDACb₅₉.

Third, the embodied arrangement is further area efficient since the digital functions (SQRt₅₉, MULTm₅₉, and SQRb₅₉) can run at higher frequencies and one set of SQRt₅₉, MULTm₅₉, and SQRb₅₉ be time-multiplexed between plurality of channels, for multi-channel output squarer and square-accumulate functions.

Section 60—Description of FIG. 60

FIG. 60 illustrates a block diagram of an embodiment of a squarer (SQR₆₀) which is a segmented digital-input to current analog-output squarer utilizing a pair of digital squarers, a mashed multiplier, and current output Digital-to-Analog-Converters (iDAC)s. The SQR₆₀ utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678. The SQR₆₀ also utilizes the meshed digital-to-analog multiplication method (described and illustrated in sections 32-32A and FIGS. 32-32A, respectively). Depending on resolution requirements, the SQR₆₀ can utilize digital squares of the type illustrated in FIG. 54-55.

The SQR₆₀ squarer's input is a digital word Z that is partitioned to a MSP digital word (Z_(MSP)), and a LSP digital word (Z_(LSP)). The output of SQR₆₀ squarer is an analog Z² signal that is an analog current signal square representation of the digital input word Z.

The top and bottom digital-input to digital-output squarer blocks (SQRt₆₀, SQRb₆₀) generate the digital Z² _(MPS) and Z² _(LPS) words, respectively, and as noted earlier, can utilize logic blocks similar to the ones disclosed in FIG. 54-55 or their expanded versions, depending on the resolution required by the end-application. The middle meshed multiplier block mD_(i)I_(O)m₅₉ can utilize the embodiments of digital-input to analog current-output multipliers (XD_(i)I_(O)) described in sections 33, 34, or 35 which that utilize the meshed digital-to-analog multiplication (mD_(i)S_(O)) method described in section 32 and 32A.

The current mode Digital-to-Analog-Converters iDACt₆₀ and iDACb₆₀ can utilizes floating iDAC, factorized iDAC, reference bias network (RBN) style iDACs illustrated in FIG. 19, or other standard iDACs.

The Z² _(MPS) digital word is inputted onto iDACt₆₀ which generates an analog current signal responsive to Z² _(MPS) and proportional to a scaled reference current signal I_(R)×st₆₀, wherein st₆₀ is a top-reference scale factor.

The Z² _(LPS) digital word is inputted onto iDACb₆₀ which generates an analog current signal responsive to Z² _(LPS) and proportional to a scaled reference current signal I_(R)×sb₆₀, wherein sb₆₀ is a bottom-reference scale factor.

The Z_(MPS) and Z_(LPS) digital words are inputted to I₁ and I₂ digital input ports of the middle mD_(i)I_(O)m₆₀, which generates an analog current signal responsive to the product of Z_(MPS) and Z_(LPS) and proportional to a scaled reference current signal I_(R)×sm₆₀, wherein sm₆₀ is a middle-reference scale factor.

Benefits described in sections 32-35 as well as in section 57 are generally applicable to the circuit illustrated here in FIG. 60. Also, the circuit of FIG. 60 enjoys the benefits attributed to current mode signal processing that has been described throughout this disclosure.

Additional benefits of the SQR₆₀ embodiment is:

First, the embodied arrangement is area efficient since the function of scale blocks ST₅₇, ST₅₇, and ST₅₇ of FIG. 57 is performed in FIG. 60 by simply scaling the I_(R) current reference scale factors st₆₀, sm₆₀, and sb₆₀.

Second, the embodied arrangement is also area efficient since the function of summation block SUM₅₇ of FIG. 57 is performed in FIG. 60 by simply joining the output current wires iDACt₆₀, mD_(i)I_(O)m₆₀, and iDACb₆₀.

Section 61—Description of FIG. 61

FIG. 61 is a simplified block diagram (aSQR₆₁) illustrating an embodiment of a segmented digital-input to current analog-output approximate squarer, that utilizes the non-linear digital-to-analog converter (NDAC) method which is described in sections 36, 36A, and 37 of this disclosure. It also utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678.

The aSQR₆₁ digital input ports receive a digital Z word, wherein the digital Z word is partitioned to a digital MSB bank word (Z_(MSP)) and a digital LSB bank word (Z_(LSP)).

The aSQR₆₁ outputs an analog ˜Z² signal that is an approximate analog representation of square of its input word Z.

The aSQR₆₁ block is comprised of the following sub-blocks: a MSP square logic (SQRt₆₁), a digital multiplier (MULTm₆₁) and current mode Digital-to-Analog-Converters (iDACt₆₁, iDACm₆₁, and iDACb₆₁).

The digital squarer SQRt₆₁, depending on end-application resolution requirements, can utilize a logic circuit similar to the ones illustrated in FIG. 54-55. The SQRt₆₁ receives the Z_(MSP) word at its digital input (I-port), and it generates a digital square word Z_(MSP) ² at its digital output (O-port) which feeds iDACt₆₁ whose current analog-output is responsive to Z_(MSP) ² and proportional a top-scaled reference current st₆₁×I_(R).

The sub-block MULTm₆₁ depending on end-application resolution requirements, can utilize a logic circuit similar to the ones illustrated in FIG. 56. The MULTm₆₁ receives the Z_(MSP) word at its MPS digital input port (I₁), and receives the Z_(LSP) word at its LPS digital input port (I₂), and generates a digital word Z_(MSP)×Z_(LSP) at its digital output port (O). The Z_(MSP)×Z_(LSP) digital word is fed onto a iDACm₆₁ whose current analog-output is responsive to Z_(MSP)×Z_(LSP) and proportional a top-scaled reference current sm₆₁×I_(R).

The iDACb₆₁ receives the Z_(LSP) word at its digital input port (D), and generates a current analog-output signal responsive to the digital word Z_(LSP) and proportional a bottom-scaled reference current sb₆₁×I_(R).

Note that the greater the approximation budget of the end-application, the smaller the area of aSQR₆₁. As a reminder, MULTm₆₁ serves as a straight-line segment approximation to fill the gaps in-between MSP segments of non-linear (square) output of the SQRt₆₁. The lower the resolution of MULTm₆₁, the smaller the size of MULTm₆₁, the greater the straight-line segment approximation, and the larger the inaccuracy associated with approximation.

Keep in mind the accuracy of the aSQR₆₁ is more dependent on the MSB bank and less on the LSB bank. Therefore, the arrangement in aSQR₆₁, as well the arrangement in the non-linear digital-to-analog converter (NDAC) method that is described in sections 36, 36A, and 37 of this disclosure, can optimized for smaller area by reducing the number of LSBs, or for less approximation (more accuracy) for larger area.

Benefits described in sections 36-37 and section 57 are generally applicable to the circuit illustrated here in FIG. 61. Also, the circuit of FIG. 61 enjoys the benefits attributed to current mode signal processing that has been described throughout this disclosure.

Additional benefits of the aSQR₆₁ embodiment is:

First, the aSQR₆₁ can be significantly smaller and lower cost with lower dynamic power consumption, as compared to a conventional means of generating a digital Z² that for example require the multiplication of Z×Z whose die cost, die size, and dynamic power consumption increases significantly with higher width of the Z-bit word.

Second, the aSQR₆₁ enables making a fast and low-cost digital-input to digital-output multiplier using the quarter square procedure. Here, by subtracting the digital outputs of (one time multiplexed or two) aSQR₆₁ to generate a scaled multiplication of two digital words X and Y, whose summation (X+Y) and subtraction (X−Y) is inputted into aSQR₆₂. By inputting digital summation (X+Y) and digital subtraction (X−Y) onto a aSQR₆₁ and subtracting the approximate digital outputs ˜(X+Y)² and ˜(X−Y)² from one another, an approximate scaled multiplication digital signal ˜4X·Y can be generated.

Third, the aSQR₆₁ enables making a digital input to multi-quadrant digital output multiplier via using the quarter square procedure, by for example squaring the digital absolute values of |X+Y and |X−Y.

Fourth, because aSQR₆₁ is mostly digital, it can be time multiplexed at a high-speed to generate plurality of digital words. Accordingly, such plurality of digital words can be inputted onto a plurality of respective current mode Digital-to-Analog converters (iDAC)s. By simply joining the current analog-outputs of such plurality of iDACs to perform the function of summation, a mixed-mode square-accumulate (SQAC) current signal can be generated. Such an arrangement can be more area and power efficient as compared to larger area and dynamic power consumption associated with an all-digital SQAC that utilizes an alternative plurality of digital registers and adders.

Section 62—Description of FIG. 62

FIG. 62 illustrates a block diagram of an embodiment of a mixed-mode multiplier (sMULT₆₂) which is a segmented digital-input to current analog-output multiplier utilizing a time multiplexed digital multiplier, and plurality of current output Digital-to-Analog-Converters (iDAC)s. The sMULT₆₂ utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678.

The digital inputs to the sMULT₆₂ multiplier are a pair of X and Y digital words that are each partitioned to a MSP digital words (X_(MSP) and Y_(MSP)), and a LSP digital words (X_(LSP) and Y_(LSP)) respective segments.

Controlled and clocked by the digital word (Sc), a register REG₆₂ is inputted with pairs of portioned X and Y words which are X_(MSP), X_(LSP), Y_(MSP), and Y_(LSP) segments.

For example, pairs of partitioned digital words (X_(MSP), Y_(MSP)) and (X_(MSP), Y_(LSP)) and (X_(LSP), Y_(MSP)) and (X_(LSP), Y_(LSP)) are sequentially clocked through REG₆₂ and onto the digital inputs (I₁, I₂) of a time multiplexed digital MULT₆₂ multiplier.

The digital-input to digital-output multiplier MULT₆₂ can for example utilize a digital multiplier similar to the one illustrated on FIG. 56, depending on resolution requirements of end-applications.

The time multiplexed digital MULT₆₂ multiplier accordingly generates a sequence of digital segment product words (X_(MSP)×Y_(MSP)) and (X_(MSP)×Y_(LSP)) and (X_(LSP)×Y_(MSP)) and (X_(LSP)×Y_(LSP)).

The digital segment product words are respectively selected and clocked (by the Sc word) onto digital registers Lt₆₂, Llm₆₂, Lml₆₂, and Lb₆₂ whose digital outputs are inputted to iDACt₆₂, iDACml₆₂, iDAClm₆₂, and iDACb₆₂, respectively.

The iDACt₆₂, iDACml₆₂, iDAClm₆₂, and iDACb₆₂ can utilize floating iDAC or factorized iDAC described in this disclosure, reference bias network (RBN) style iDACs illustrated in FIG. 19, or other standard iDACs.

The current analog-output of iDACt₆₂ is responsive to the digital segment product word (X_(MSP)×Y_(MSP)) and proportional to a top-scale current reference st₆₂×I_(R).

The current analog-output of iDACml₆₂ is responsive to the digital segment product word (X_(MSP)×Y_(LSP)) and proportional to a middle-scale current reference Sm₆₂×I_(R).

The current analog-output of iDAClm₆₂ is responsive to the digital segment product word (X_(LSP)×Y_(MSP)) and also proportional to the middle-scale current reference Sm₆₂×I_(R).

Lastly, the current analog-output of iDACb₆₂ is responsive to the digital segment product word (X_(LSP)×Y_(LSP)) and proportional to a bottom-scale current reference sb₆₂×I_(R).

The analog output currents of iDACt₆₂, iDACml₆₂, iDAClm₆₂, and iDACb₆₂ are then joined together to generate a final analog current output that is proportional to a scaled I_(R) and responsive to the digital word product X×Y.

In summary, the segmented multiplication method partitions a pair of input signals to each signal's sub-segment banks to be respectively multiplied, cross-multiplied, scaled, and recombined with one another to generate the product of the original input signals.

Benefits described in section 57 are generally applicable to the circuit illustrated here in FIG. 62. Also, the circuit of FIG. 62 enjoys the benefits attributed to current mode signal processing that has been described throughout this disclosure.

Also, partitioning (segmenting) a pair of higher resolution input (to be multiplied) into their sub-segment signal banks (with smaller resolutions), and then processing and re-assembling the sub-segmented signal banks with lower resolution circuitry to generate a final product output signal would have the following benefits:

First, the segmented multiplication would reduce the size of the multiplication circuitry.

Second, the segmented multiplication would improve the dynamic performance of the multiplication circuitry, and

Third, the segmented multiplication allows optimizing for cost-performance by processing parts of the multiplication function in mixed-mode.

Fourth, the embodied arrangement is area efficient since the scaling of the weight of sub-segment products are accomplished by simply scaling the I_(R) current reference of the iDACs.

Fifth, the embodied arrangement is also area efficient since the function of summation is simply the joining of the output current wires of iDACs.

Sixth, the embodied arrangement is further area efficient since the digital multiplications function can run at higher frequencies and be time-multiplexed between plurality of channels suitable for multi-channel output multiply-accumulate (MAC) functions.

Section 63—Description of FIG. 63

FIG. 63 illustrates a block diagram of an embodiment of a mixed-mode multiply-accumulate (MAC₆₃). The MAC₆₃ utilizes the quarter square procedure for MAC₆₃, wherein most of the multiplication functions are performed in the digital domain at high-speed to be time-multiplexed for a plurality of input signals, and the accumulation functions (for the multiplied plurality of input signals) are performed in the current-mode analog domain.

The digital inputs to the MAC₆₃ are a pair of clock sequenced X_(n) and Y_(n) digital words that are sequentially summed together and subtracted from each other in a sum & deduct logic block (SDL₆₃) that generates a clock sequenced X_(n)+Y_(n) and X_(n)−Y_(n) digital words, wherein a Sc word controls the clock input port (c) of the SDL₆₃.

The clock sequenced X_(n)+Y_(n) and X_(n)−Y_(n) digital words are inputted to a clocked register & multiplex logic block (RML₆₃), which generates a sequence of clocked multiplex output Z_(n) digital words, which can represent either the clocked sequence X_(n)+Y_(n) digital words or the clocked sequence X_(n)−Y_(n) digital words in accordance with the Sc word that controls the address and clock input port (c) of the RML₆₃.

The clocked sequence Z_(n) digital words are inputted to an absolute value logic block (ABSL₆₃) which generates a clocked sequence of |Z_(n)| digital words, which are then passed onto a square logic block SQRL₆₃ that generates a clocked sequence of |Z_(n)|² digital words.

Accordingly, the clocked sequence of |Z_(n)|² digital words are inputted to a plurality of respective digital latches (L1 ₆₃ to Ln₆₃) that are controlled by the Sc word.

The output the L1 ₆₃ to Ln₆₃ are passed on through to a plurality of respective iDACs (iDAC1 ₆₃ to iDACn₆₃) that generate a plurality of analog signals (|z′₁|² to |z′_(n)|²), which are proportional to a reference signal (I_(R)). Bear in mind that the plurality of respective iDACs are also inputted with a plurality of respective current references (s1 ₆₃×I_(R) to sn₆₃×I_(R)), wherein scale factors s1 ₆₃ to sn₆₃ can be programmed equally weighted or individually weighted.

The output of the plurality of respective iDACs are coupled together to generate a summation analog signal Σ|z′_(i)|²=|z′₁|²+|z′₂|²+ . . . +|z′_(n)|² (that is proportional to I_(R)) is then digitalized by an iADC (iADC₆₃). The summation digital output signal of the iADC₆₃ is Σ|Z_(i)|²=|Z₁|²+Z₂|²+ . . . +|Z_(n)|² (that is proportional to Ir₆₃ which is also proportional to I_(R)).

The output of the iADC₆₃ is de-multiplexed by latch logic blocks (Ls₆₃-Ld₆₃) to decouple a respective summation Σ|Z_(i)|² that correspond to digital summations words Σ|X_(i)+Y_(i)|² and Σ|X_(i)−Y_(i)|². Note that the S_(c) digital word controls the iADC₆₃ and the Ls₆₃-Ld₆₃.

The digital summations words Σ|X_(i)+Y_(i)|² and Σ|X_(i)−Y_(i)|² are then subtracted from one another through a deduction logic block (DL₆₃) to generate a multiply-accumulate digital word ΣX_(i)Y_(i).

Some of the benefits of the MAC₆₃ are as follows:

First, the most of the multiply function is performed in digital (which can be accomplished rapidly) and the resultant digital outputs can be time multiplexed for plurality for digital input words, which saves area.

Second, the accumulation function is performed in current mode by joining the output of plurality of iDACs, which also saves area (compared to utilizing digital adders that occupy large areas).

Third, performing the multiplication function by utilizing the quarter-square procedure can also save area.

Fourth, performing the accumulation function is current mode also benefits from current mode signal processing that has been described throughout this disclosure.

Section 64—Description of FIG. 64

FIG. 64 is a simplified block diagram illustrating an embodiment a digital-input to current analog-output approximate square-accumulate (aSQRAC₆₄), that utilizes the non-linear digital-to-analog converter (NDAC) method which is described in sections 36, 36A, and 37 of this disclosure. It also utilizes the segmented mixed mode multiplication method that is disclosed in U.S. patent application Ser. No. 16/381,245 which claims priority from U.S. Provisional Patent Application Ser. No. 62/658,678.

The squaring function of the aSQRAC₆₄ is arranged similar to the aSQR₆₁ block illustrated in FIG. 61 and described in section 61, expect the iDAC₆₁ and sb₆₁. I_(R) are eliminated to save area. As indicated earlier, the accuracy of the aSQR₆₁ is dominated by the Most-Significant-Portion bank words, and dropping some of the bits in the Least-Significant-Portion bank words can be an acceptable trade-off between saving area and power consumption in exchange for more approximation.

A clocked sequence of Z digital words are partitioned to a clocked sequence of MSP segment (Z_(MSP)) digital words and a clocked sequence of LSP segment (Z_(LSP)) digital words, respectively.

The sequence of Z_(MSP) and Z_(LSP) digital words are inputted to a pair of square logic block (SQR₆₄) and digital multiplier block (MULT₆₄) that can operate at high speeds, and which are time multiplexed to receive the respective clocked sequence of Z_(MSP) and Z_(LSP) digital words (that make up the sequenced Z digital words).

The clocked sequence of digital outputs of SQR₆₄ and MULT₆₄ are passed onto a plurality of pairs of latches (L_(a) 1 ₆₄ & L_(s) 1 ₆₄ to L_(a)n₆₄ & L_(s)n₆₄), wherein the plurality of pairs of latches are selected, clocked, and controlled by a sc digital word.

Then, the output of the plurality of pairs of latches are passed on a plurality of pairs of iDACs (iDAC_(a) 1 ₆₄ & iDAC_(s) 1 ₆₄ pair to iDAC_(a)n₆₄ & iDAC_(s)n₆₄ pair) that generate a plurality of approximate square analog signals (˜z′₁ ² to ˜z′_(n) ²), which are proportional to a reference signal (I_(R)). Notice that a current reference input signal for iDAC_(a) 1 ₆₄ to iDAC_(a)n₆₄ can be programmed via s_(a)·I_(R) and another current reference input signal for iDAC_(s) 1 ₆₄ to iDAC_(s)n₆₄ can be programmed via s_(s)·I_(R).

The analog current outputs of the iDACs are coupled together to generate an approximate square-accumulate analog current signal ˜ΣZ′_(i) ², which is converted to an approximate square-accumulate digital word ˜ΣZ_(i) ² via an iADC₆₄ whose output is proportional to a reference current input signal Ir₆₄ that is scaled with respect to I_(R). Bear in mind that the ˜ΣZ′_(i) ² and current signal and ˜ΣZ_(i) ² digital word are proportional to the respective current reference signals that are scaled with respect to I_(R).

Some of the benefits of the aSQRAC₆₄ are as follows:

First, the square and multiply functions are performed in digital (which can be accomplished rapidly) and the resultant digital outputs can be time multiplexed for plurality for digital input words, which saves area.

Second, the summation function is performed in current mode by joining the output of plurality of iDACs, which also saves area (compared to utilizing digital adders that occupy large areas).

Third, performing the squaring function by utilizing the square approximation, segmentation disclosed earlier also save area.

Fourth, summation the accumulation function is current mode also benefits from current mode signal processing that has been described throughout this disclosure.

Fifth, aSQRAC₆₄ share similar benefits described in the aSQR₆₁ block illustrated in FIG. 61 and described in section 61

Section 65—Description of FIG. 65

FIG. 65 illustrates SPICE simulations of a circuit equivalent to the SQR₅₈ illustrated in FIG. 58 and disclosed in section 58.

For the purpose of this simulations, the SQR₅₈ (having a square transfer function) is inputted with a 6-bit digital word X that is comprising of X_(MSB) that is a 3-bit digital word, and X_(LSB) that is a 3-bit digital word.

The X digital word is ramped between zero-scale to full scale that is shown in the middle graph of FIG. 65, which also depicts the X² ideal and the X² simulated graphs.

For clarity of waveform illustration to fit in the FIG. 65 graph, the analog equivalent waveforms of digital X and ideal X² signals are presented in FIG. 65.

The lower waveform of FIG. 65 shows the current consumption I_(DD).

The upper waveform of FIG. 65 is the X² ideal minus the X² simulation to demonstrate the DNL (differential non-linearity) and INL (integral non-linearity).

Keeping in mind that 6-bit of resolution computes to about 1.6% of accuracy, FIG. 65 indicates DNL and INL in the range of ±1.6%.

Section 66—Description of FIG. 66

FIG. 66 illustrates SPICE simulations of a circuit equivalent to the aSQR₆₁ illustrated in FIG. 61 and disclosed in section 61.

For the purpose of this simulations, the aSQR₆₁ (having a square transfer function) is inputted with a 6-bit digital word X that is comprising of X_(MSB) that is a 3-bit digital word, and X_(LSB) that is a 3-bit digital word.

The X digital word is ramped between zero-scale to full scale. The middle graph of FIG. 66 depicts the X² ideal and the ˜X² and the and the ˜˜X² simulated graphs.

To illustrate the impact of adjusting straight line approximation on the squarer transfer function, ˜X² depicts the simulated output of aSQR₆₁ comprising the iDACb₆₁, and ˜˜X² indicates the simulated output of aSQR₆₁ excluding the iDACb₆₁. The ˜X², ˜X², and ˜X² are shifted with an offset for clarity of illustration.

Also, for clarity of waveform illustration to fit in the FIG. 66 graph, the analog equivalent waveforms of digital ideal X² signal is presented in FIG. 66.

The lower waveform of FIG. 66 depicts the current consumption I_(DD).

The upper waveform of FIG. 66 is the X² ideal minus the ˜X² and ˜˜X² simulation to demonstrate the DNL (differential non-linearity) and INL (integral non-linearity).

Keeping in mind that 6-bit of resolution computes to about 1.6% of accuracy, FIG. 66 indicates DNL and INL of ˜X² is about half of that of ˜˜X².

Section 67—Description of FIG. 67

FIG. 67 illustrates SPICE simulations of a circuit equivalent to the SQR₅₉ illustrated in FIG. 59 and disclosed in section 59.

For the purpose of this simulations, the SQR₅₉ (having a square transfer function) is inputted with a 4-bit digital word X that is comprising of X_(MSB) that is a 2-bit digital word, and X_(LSB) that is a 2-bit digital word. The SQRt₅₉, SQRb₅₉, and MULTm₅₉ are all arranged with digital logic gates, and each are comprised of 2-bit input port to 4-bit output ports. The iDACt₅₉, iDACt₅₉, and iDACt₅₉ have 4-bits input ports.

The X digital word is ramped between zero-scale to full scale that is shown in the lower graph of FIG. 67, which also depicts the X² ideal and the X² simulated graphs.

For clarity of waveform illustration to fit in the FIG. 67 graph, the analog equivalent waveforms of digital X and ideal X² signals are presented in FIG. 67.

The middle waveform of FIG. 67 depicts the current consumption I_(DD).

The upper waveform of FIG. 67 is the X² ideal minus the X² simulation to demonstrate the DNL (differential non-linearity) and INL (integral non-linearity).

Keeping in mind that 4-bit of resolution computes to about 6.25% of accuracy, FIG. 67 indicates DNL and INL in the range of ±6.25%.

Section 68—Description of FIG. 68

FIG. 68 illustrates SPICE simulations of a circuit equivalent to the MULTL₆₂ described in section 62 and illustrated in FIG. 62. The mMULTL₆₂ is arranged with digital logic having two 2-bit wide input ports and a 4-bit output port. The iDACs are 4-bits.

For the purpose of this simulations, the MULTL₆₂ is inputted with a pair of X, Y 4-bit digital words comprising of X_(MSB), X_(LSB) that are each 2-bit digital wide, and Y_(LSB), Y_(LSB) that are each 2-bit digital word.

The digital inputs X and Y digital words are ramped in the opposite direction between zero-scale to full scale and are shown in the upper graph of FIG. 68 which also depicts the ideal X. Y waveform.

For clarity of waveform illustration to fit in the FIG. 68 graph, analog equivalent waveforms of digital inputs and ideal digital output signals are graphed in FIG. 68.

The middle waveform of FIG. 68 depicts the current consumption I_(DD).

The lower waveform of FIG. 68 is the X·Y ideal minus the X·Y simulations to demonstrate the DNL (differential non-linearity) and INL (integral non-linearity).

Keeping in mind that 4-bit of resolution computes to about 6.25% of accuracy, FIG. 68 indicates DNL and INL in the range of ±3.2%.

Section 68—Description of FIG. 68

FIG. 69 is a simplified circuit schematic illustrating an embodiment of a SRAM based Compute-In-Memory (CIM) circuit utilizing a meshed multiplier (XD_(i)I_(O) multiplier) and reference bias network (RBN).

In FIG. 69, three of a six transistor (6T) Static-Random-Access-Memory (SRAM) cells on the left, middle, and right sides of FIG. 69 (e.g., SRAM_(L69), SRAM_(M69), and SRAM_(R69)) are loaded with a 3-bit wide Y digital input word (e.g., Y1 _(a69) & Y1 _(a69) bit, Y2 _(a69) & Y2 _(a69) bit, and Y3 _(a69) & Y3 _(a69) bit), one row at a time (e.g., a row). A write signal (e.g., Wy_(a69)) enables a respective cell of SRAM's input switches (e.g., N1 ₆₉ & N2 ₆₉) to receive a corresponding Y digital bit into the SRAM latch (e.g., P1 ₆₉ & N3 ₆₉, and P2 ₆₉ & N4 ₆₉).

For clarity, FIG. 69 illustrates only a one row array of SRAM cells with one digital write signal Wy_(a69), but plurality of SRAM rows (e.g., rows a through z) with plurality of digital write signals (e.g., Wy_(a69) through Wy_(z69)) can be arranged.

Moreover, for clarity of illustration, FIG. 69 depicts a three 6T SRAM cells that provide a 3-bit wide Y digital input word (e.g., Y1 _(a69), Y2 _(a69), and Y2 _(a69)) for a 3-bit by 3-bit (3×3) XD_(I)I_(O) multiplier. It would be obvious to one skilled in the art to expand the multiplier digital input words and the corresponding array of SRAM cells and SRAM rows.

Notice that the 3×3 XD_(I)I_(O) multiplier arrangement of FIG. 69 is similar to the meshed multiplier described and illustrated in section 33 and FIG. 33. However, in FIG. 69, the full-scale output currents IO+ that correspond to each CI_(SW) source are scaled equally (e.g., full-scale I1 ₆₉, I2 ₆₉, and I4 ₆₉ when all X and Y digital inputs are asserted to an ON state).

Stated differently, the full-scale output currents of composite switched scaled current sources (CI_(SW) source) which are the left mX_(L69), middle mX_(M69), and right mX_(R69) are equally weighted with respect to on another.

Observe that in the embodiment of FIG. 69, each CI_(SW) source has three analog current input ports (CIi_(SW) port), one analog current output IO+ port, three Y digital-input port (CIy_(SW) ports), and one X digital-input port (CIx_(SW) port).

In FIG. 69, each CIi_(SW) port is coupled with three scaled reference current source (e.g., scaled I_(Q) sources such as N1′₆₉, N2′₆₉, and N4′₆₉). Also notice that the RBN₆₉, which provides the bias voltages (e.g., B1 ₆₉, B2 ₆₉, B4 ₆₉) to bias each corresponding scaled I_(Q) sources, is arranged similar to the reference bias network described and illustrated in section 19, and FIG. 19 (with the difference being a bias voltage bus comprising fewer bias nodes, for clarity of illustration).

In the embodiment of FIG. 69, each CI_(SW) source is comprised of three composite current switches (iSW_(C) switch). Each iSW_(C) switch is comprised of an analog current input port (iSWi_(C) port which receives its corresponding scaled I_(Q)), a positive analog current output port (iSW_(O+C) port which are coupled to the IO+ port of the corresponding CI_(SW)) and two control digital input ports (iSWx_(C) port, iSWy_(C) port which receive a corresponding X and Y digital bit, respectively).

For example, in the CI_(SW) source of mX_(L69), when either of digital inputs X1 _(a69), X2 _(a69), and X3 _(a69) are asserted to an ON states along with Y1 _(a69) asserted to an ON state, then the corresponding currents from scaled I_(Q) sources (e.g., respective drain currents of N1′₆₉, N2′₆₉, and N4′₆₉) are passed (through N1 x ₆₉, N2 x ₆₉, and N3 x ₆₉, and then through N1 y ₆₉, N2 y ₆₉, and N3 y ₆₉) onto the I4 ₆₉ port. Otherwise, substantially zero current signal is passed onto the iSW_(O+C) ports which are coupled together to the IO+ port (i.e., the I4 ₆₉ port) of the corresponding CI_(SW) (e.g., mX_(L69)).

In FIG. 33, a corresponding full-scale value of equivalent I1 ₆₉, I2 ₆₉, and I4 ₆₉ were binarily scaled with respect to one another. In the embodiment of FIG. 69, the corresponding CI_(SW)'s full-scale values of I1 ₆₉, I2 ₆₉, and I4 ₆₉ are equally weighted. The function of binary scaling of I1 ₆₉, I2 ₆₉, and I4 ₆₉ is accomplished in a current mirror (CM₆₉) circuit. The CM₆₉ is comprising of three scaled P8 ₆₉-P7 ₆₉, P6 ₆₉-P5 ₆₉, and P3 ₆₉-P2 ₆₉ current mirrors that respectively receive the I1 ₆₉, I2 ₆₉, and I4 ₆₉ currents.

The scaled outputs of CM₆₉ (e.g., P8 ₆₉, P6 ₆₉ and P4 ₆₉) are coupled together to generate an analog current signal (Ixy₆₉) that is responsive to the digital multiplication of the X digital word and Y digital word, and is proportional to IQ₆₉ (i.e., scaled reference current signal)

Keep in mind that the digital-bit at Y1 a ₆₉ controls the Y digital bit for CI_(SW) (mX_(L69)) that receives the Most-Significant-Bit (MSB) and is arranged with a corresponding current weight scale factor of 2X (e.g., I4 ₆₉ coupled to a current mirror P8 ₆₉-P7 ₆₉ with a 2X scale factor). Moreover, the digital-bit at Y2 a ₆₉ controls the Y digital bit for CI_(SW) (mX_(L69)) that receives the Middle-Bit (MB) and is arranged with a corresponding current weight scale factor of 1X (e.g., I2 ₆₉ coupled to a current mirror P6 ₆₉-P7 ₆₉ with a 1X scale factor). Lastly, the digital-bit at Y3 a ₆₉ controls the Y digital bit for CI_(SW) (mX_(L69)) that receives the Least-Significant-Bit (LSB) and is arranged with a corresponding current weight scale factor of X/2 (e.g., I1 ₆₉ coupled to a current mirror P4 ₆₉-P3 ₆₉ with a X/2 scale factor).

In another embodiment, instead of (utilizing the CM₆₉ comprised of three scaled P8 ₆₉-P7 ₆₉, P6 ₆₉-P5 ₆₉, and P3 ₆₉-P2 ₆₉) current mirrors to perform the function of binary scaling of I1 ₆₉, I2 ₆₉, and I4 ₆₉ (as illustrated in FIG. 69), three current mode Analog-To-Digital-Converters (iADC) can be utilized. In such an arrangement, each iADC receives the respective I1 ₆₉, I2 ₆₉, and I4 ₆₉ currents and converts them to digital words, wherein the function of binary scaling is accomplished at the digital output of each iADC in the digital domain. Note that to scale a digital word by a factor of two requires a simple shift to the right or left.

It would be obvious to one skilled in the art that currents outputs can be single ended (e.g., I1 ₆₉, I2 ₆₉, and I4 ₆₉ currents) as depicted in FIG. 69 or differential. Accordingly, scaled current mirrors can be single ended (e.g., P8 ₆₉-P7 ₆₉, P6 ₆₉-P5 ₆₉, and P3 ₆₉-P2 ₆₉) as depicted n FIG. 69 or differential. Similarly, in other embodiments such as utilizing plurality of iADCs, such differential output currents can be inputted onto differential inputs iADCs.

In arranging current mode Multiply-Accumulate (iMAC) equipped with Compute-In-Memory (CIM) based on SRAM, a plurality of multipliers generate a plurality of current signals equivalent to each of I1 ₆₉, I2 ₆₉, and I4 ₆₉ currents (i.e., plurality of IO+ of plurality of CI_(SW)) that can inputted to one scaled current mirror circuit. In such an arrangement, the one scaled current mirror circuit (that is shared between plurality of IO+ of plurality of CI_(SWS)) saves on silicon die area and a scaled current mirror mismatch is limited to the one scaled common current mirror circuit.

For example, a plurality of IO+ of a plurality of CI_(SW) that correspond to a plurality of respective MSBs can be collectively coupled to the P8 ₆₉-P7 ₆₉ current mirror. Another plurality of IO+ of another plurality of CI_(SW) that correspond to another plurality of respective MBs can be collectively coupled to the P6 ₆₉-P5 ₆₉ current mirror. Also, other plurality of IO+ other plurality of CI_(SW) that correspond to other plurality of respective LSBs can be collectively coupled to the P4 ₆₉-P3 ₆₉ current mirror. Accordingly, the current analog outputs of CM₆₉ circuit (e.g., P8 ₆₉, P6 ₆₉ and P4 ₆₉) can be coupled together to generate an analog current multiply accumulate signal (ΣIxy₆₉) that is responsive to a plurality of digital multiplication of a plurality of X digital words and plurality of Y digital word that is proportional to a reference current signal.

It would be obvious to one skilled in the art that in an alternate arrangement with iADCs may be utilized here. As such, in a current mode Multiply-Accumulate (iMAC) equipped with Compute-In-Memory (CIM) based on SRAM, a plurality of multipliers can generate a plurality of current signals, each of which are equivalent to each of corresponding I1 ₆₉, I2 ₆₉, and I4 ₆₉ currents (plurality of IO+ of plurality of CI_(SW)) which can then be can inputted to three iADCs. In such an arrangement, the three iADCs (that are shared between plurality of IO+ of plurality of CI_(SWS)) can perform the function of scaling in the digital domain, and such an arrangement can saves on silicon die area.

Section 68—Description of FIG. 68

FIG. 70 is a simplified circuit schematic illustrating another embodiment of SRAM based Compute-In-Memory (CIM) utilizing a current-mode Multiply-Accumulate (iMAC) system comprising a plurality of meshed multiplier (XD_(I)I_(O) multiplier) with a bias current-mode Digital-to-Analog-Converter (iDAC), and a current-mode Analog-To-Digital-Converter (iADC).

In the embodiment of FIG. 70, the CIM is configured with plurality of SRAM arrays (e.g., SRAMa₇₀ that is 3-bit wide and in the a^(th) row and SRAMb₇₀ that is also 3-bit wide and in the b^(th) row). Alternative sizes of SRAMs (e.g., 6-bit wide, 8-bit wide, etc.) and their numbers of SRAM rows (e.g., 100s) can be substantially larger depending on the end-application requirement.

Similar to FIG. 69, the embodiment of FIG. 70 is illustrated with three 6T SRAMs arrays on the left, middle, and right sides per row. The SRAM arrays are loaded with columns of 3-bit wide Y digital input word (e.g., Y1 _(a70) & Y1 _(a70) bit, Y2 _(a70) & Y2 _(a70) bit, and Y3 _(a70) & Y3 _(a70) bit), one row at a time (e.g., a^(th) row, b^(th) row, etc.). A write signal (e.g., Wy_(a70), Wy_(b70), etc.) enables a respective SRAM's input switches (e.g., N1 ₇₀ & N2 ₇₀) to receive a corresponding Y digital bit into the SRAM latch (e.g., P1 ₇₀ & N3 ₇₀, and P2 ₇₀ & N4 ₇₀).

For clarity, FIG. 70 illustrates only a two row array of SRAM cells, each having one digital write signal (e.g., Wy_(a70), Wy_(b70)) but plurality of SRAM rows (e.g., rows a through z) having more than three bits and with plurality of digital write signals (e.g., WYy_(a70) through Wy_(z70)) can be arranged.

Moreover, for clarity of illustration, FIG. 70 depicts a three 6T SRAM cells that provide a 3-bit wide Y digital input word (e.g., Y1 _(a70), Y2 _(a70), and Y2 _(a70)) for each of the 3-bit by 3-bit (3×3) XD_(I)I_(O) multiplier (e.g., mX_(a70)). It would be obvious to one skilled in the art to expand the multiplier digital input words and increase the corresponding array of SRAM cells and expand the SRAM rows.

Notice that in FIG. 70, a plurality of current mode meshed multipliers XD_(I)I_(O) (e.g., mXa₇₀ and mXb₇₀) are placed on the silicon chip near their respective SRAM cells, which helps reduce dynamic current consumption, in part due to reducing the read-write cycles between memory and a computation circuit (i.e., multiplication). Also, bear in mind that the 3x3 XD_(I)I_(O) multiplier arrangements of FIG. 70 are similar to the meshed multiplier described and illustrated in section 33 and FIG. 33. Observe that a reference bias network (RBN described and illustrated in section 19, and FIG. 19) can provide a bias voltage (e.g., for plurality of each rows from a^(th) row to b^(th) row: B1 ₇₀, B2 ₇₀, B4 ₇₀, B8 ₇₀, and B16 ₇₀) to bias each corresponding scaled reference current sources for the plurality of XD_(I)I_(O).

The current outputs of plurality of XD_(I)I_(O) (e.g., mXa₇₀ and mXb₇₀) are coupled together and coupled with a bias current mode DAC (e.g., iDAC₇₀) and a current input port of a current mode ADC (e.g., iADC₇₀). Such an embodiment is a simplified depiction of a SRAM based Compute-In-Memory (CIM) circuit utilizing a current-mode Multiply-Accumulate (iMAC) system comprising a plurality of meshed multiplier (XD_(I)I_(O) multiplier) with a bias current-mode Digital-to-Analog-Converter (iDAC), and a current-mode Analog-To-Digital-Converter (iADC). 

What is claimed:
 1. A meshed multiplier system for compute-in-memory in an integrated circuit, the system comprising: a plurality of digital-input to analog-output current multipliers (XD_(i)I_(O) multiplier), each XD_(I)I_(O) multiplier comprising at least one of a positive analog output port (A_(O+XY) port) and a negative analog output port (A_(O−XY) port), a X digital input port (D_(X) port) having a bit-width of M, a Y digital input port (D_(Y) port) having a bit-width of N, each XD_(I)I_(o) multiplier comprising: a plurality of composite switched scaled current sources (CI_(SW) source), each CI_(SW) source comprising a plurality of N current analog input ports (CIi_(SW) port), at least one of a positive current output port (IO+ port) and a negative current output port (IO− port), a plurality of N composite Y switch control ports (CIy_(SW) ports), and a composite X switch control port (CIx_(SW) port); an plurality of N composite current switches (iSW_(C) switch); each iSW_(C) switch comprising a current analog input port (iSWi_(C) port), at least one of a positive current analog output port (iSW_(O+C) port) and a negative current analog output port (iSW_(O−C) port), and two control digital input ports (iSWx_(C) port, iSWy_(C) port), wherein a current signal from the iSWi_(C) port is passed onto the iSW_(O+C) port only if the iSWx_(C) port and the iSWy_(C) port are both asserted, otherwise, at least one of the current signal from the iSWi_(C) port is passed onto the iSW_(O−C) port and a substantially zero current signal is passed onto the iSW_(O+C) port; for the plurality of CI_(SW) sources, each CI_(SW) source comprising a plurality of N iSW_(C) switches; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, the iSWi_(C) port of each iSW_(C) switch is coupled with a scaled current source (I_(Q) source) of a plurality of N scaled I_(Q) sources; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, at least one of the iSW_(O+C) port of each iSW_(C) switch is coupled with the IO+ port of the CI_(SW) source, and the iSW_(O−C) port of each iSW_(C) is coupled with the IO− port of the CI_(SW) source; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, all of the iSWx_(C) ports are coupled with the CIx_(SW) port, and wherein the CIx_(SW) port is responsive to a uniquely corresponding bit of the D_(X) port; for each CI_(SW) source comprising the plurality of N iSW_(C) switches, each iSWy_(C) port is coupled with a uniquely corresponding CIy_(SW) port of the plurality of N CIy_(SW) ports, and wherein the plurality of N CIy_(SW) ports respectively responsive to corresponding N bits of the D_(Y) port; wherein the plurality of N I_(Q) sources within each CI_(SW) source are at least one of binarily weighted, linearly weighted, and individually weighted with respect to one another; and wherein N is less than
 20. 2. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 1, the system further comprising: a plurality of M CI_(SW) sources of the plurality of CI_(SW) sources; for each CI_(SW) source in the plurality of M CI_(SW) sources, a plurality of M CIx_(SW) ports, and wherein the plurality of M CIx_(SW) ports are respectively responsive to corresponding M bits of the D_(X) port; and wherein M is less than
 20. 3. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 2, the system further comprising: at least one of a plurality of M IO+ ports and a plurality of M IO− ports within the plurality of M CI_(SW) sources of the plurality of CI_(SW) sources; and at least one of the A_(O+XY) port and the A_(O−XY) port of the XD_(I)I_(o) multiplier respectively coupled to at least one of the IO+ port of the plurality of M IO+ ports, and the IO− port of the plurality of M IO− ports.
 4. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 2, the system further comprising: at least one of a plurality of M IO+ ports and a plurality of M IO− ports within the plurality of M CI_(SW) sources of the plurality of CI_(SW) sources; and at least one of a current flowing through an at least one of the IO+ port (I_(IO)+ current) and the IO− port (I_(IO)− current), for each of the CI_(SW) source within the plurality of M CI_(SW) sources; wherein, when the D_(X) port and the D_(Y) port are both asserted, then the respective scaling of each of the I_(IO)+ currents in the plurality of M CI_(SW) sources is at least one of binarily weighted, linearly weighted, equally weighted, and individually weighted with respect to one another; and wherein, when digital bits at both the D_(X) port and the D_(Y) port are not asserted, then the respective scaling of each I_(IO)− current in the plurality of M CI_(SW) sources is at least one of binarily weighted, linearly weighted, equally weighted, and individually weighted with respect to one another.
 5. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 4, the system further comprising: for the plurality of M CI_(SW) sources, the respective scaling of at least one I_(IO)+ current is equally weighted with respect to one other I_(IO)+ current, and the respective scaling of at least one I_(IO)− current is equally weighted with respect to one other I_(IO)− current; at least one of a plurality of M scaled positive current mirrors (CM+), and a plurality of M scaled negative current mirrors (CM−); each scaled CM+ having a positive input port (CMi+ port) and a positive output port (CMo+ port), and each scaled CM− having a positive input port (CMi− port) and a positive output port (CMo− port); at least one CI_(SW) source coupled to at least one of the scaled positive current mirrors (CM+), and coupled to at least one of the scaled negative current mirrors (CM−), the at least one CI_(SW) source operatively coupled to one bit of the digital input port (D_(Y) port); at least one other CI_(SW) source coupled to at least one other of the scaled positive current mirrors (CM+), and coupled to at least one other of the scaled negative current mirrors (CM−), the at least one other CI_(SW) source operatively coupled to one other bit of the digital input port (D_(Y) port); and each CMo+ port coupled to the A_(O+XY) port, and each CMo− port coupled to the A_(O−XY) port.
 6. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 4, the system further comprising: for the plurality of M CI_(SW) sources, the respective scaling of at least one I_(IO)+ current equally weighted with respect to one another I_(IO)+ current, and the respective scaling of at least one I_(IO)− current equally weighted with respect to one another I_(IO)− current; at least one CI_(SW) source coupled to at least one current-mode Analog-To-Digital Converter (siADC), the at least one CI_(SW) source operatively coupled to one bit of the digital input port (D_(Y) port); and at least one other CI_(SW) source coupled to at least one other current-mode Analog-To-Digital Converter (siADCo), the at least one other CI_(SW) source operatively coupled to one bit of the digital input port (D_(Y) port).
 7. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 2, the system further comprising: the IO+ port of one CI_(SW) source coupled to the IO+ port of at least one other CI_(SW) source, and the IO− port of one CI_(SW) source coupled to the IO− port of at least one other CI_(SW) source.
 8. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 2, the system further comprising: a plurality of the XD_(I)I_(o) multiplier wherein at least one of a plurality of A_(O−XY) ports are coupled together, and a plurality of A_(O+XY) ports are coupled together.
 9. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 8, the system further comprising: a bias current Digital-To-Analog-Converter (biDAC) comprising of at least one of a positive analog output port (A_(OB+) port) and a negative analog output port (A_(OB−) port); and the at least one of the plurality of A_(O+XY) ports and the plurality of A_(O−XY) ports of the plurality of the XD_(I)I_(o) multipliers, respectively coupled to at least one A_(OB+) port, and one A_(OB−) port.
 10. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 9, the system further comprising: at least one of a current input comparator (iCOMP) and a current input Analog-To-Digital-Converter (iADC), each having at least one of a positive current input port (A_(IC)+ port) and a negative current input port (A_(IC)− port); and at least one of the A_(IC)+ port, and the A_(IC)− port, respectively coupled to at least one of the A_(O+XY) port, and the A_(O−XY) port.
 11. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 10, the system further comprising: wherein at least one of the D_(X) port and the D_(Y) port is coupled to at least one of a Latch array, a Static-Random-Access-Memory (SRAM) array, an Erasable-Programmable-Read-Only-Memory (EPROM) array, and an Electrically-Erasable-Programmable-Read-Only-Memory (E²PROM) array.
 12. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 1, the system further comprising: wherein at least one of the D_(X) port and the D_(Y) port is coupled to at least one of a Latch array, a Static-Random-Access-Memory (SRAM) array, an Erasable-Programmable-Read-Only-Memory (EPROM) array, and an Electrically-Erasable-Programmable-Read-Only-Memory (E²PROM) array.
 13. The meshed multiplier system for compute-in-memory in an integrated circuit of claim 1, the system further comprising: each XD_(I)I_(O) multiplier comprising a reference current port (A_(R) port) coupled to a reference current source (I_(R) source); each I_(Q) source within each CI_(SW) source has a value proportional to a value of the I_(R) source; and wherein the value of the I_(R) source is established by at least one of a Digital-To-Analog Converter, and fixed.
 14. A meshed multiplier system for compute-in-memory in an integrated circuit, the system comprising: a first digital input port for receiving an M-bits wide first digital input word D_(X); a second digital input port for receiving an N-bits wide second digital input word D_(Y); a plurality of N scaled current source banks, each scaled current source bank uniquely corresponding to a bit of D_(Y); each of the N scaled current source banks comprising a plurality of M scaled current sources, each scaled current source comprised of a corresponding first switch and a corresponding second switch, each current source uniquely corresponding to a bit of the first digital input word D_(X); each scaled current source in each scaled current source bank coupled to an input of its corresponding first switch, the first switch responsive to the bit of the first digital input word D_(X) corresponding to the scaled current source; the first switch comprised of an output coupled to an input of its corresponding second switch, the second switch responsive to the bit of the second digital input word D_(Y) corresponding to the scaled current source bank; the second switch comprised of an output coupled to an output node; wherein the N scaled current source banks, are at least one of binarily weighted, linearly weighted, and individually weighted; wherein the plurality of M scaled current sources in each scaled current source bank, are at least one of binarily weighted, linearly weighted, and individually weighted; wherein at least one of the D_(X) port and the D_(Y) port is coupled to at least one of a Latch array, a Static-Random-Access-Memory (SRAM) array, an Erasable-Programmable-Read-Only-Memory (EPROM) array, and an Electrically-Erasable-Programmable-Read-Only-Memory (E²PROM) array; and wherein M is less than 20, and N is less than
 20. 